diff -durpN postgresql.2/contrib/oid2name/oid2name.c postgresql.3/contrib/oid2name/oid2name.c
--- postgresql.2/contrib/oid2name/oid2name.c 2012-10-03 10:40:48.241207023 +0200
+++ postgresql.3/contrib/oid2name/oid2name.c 2013-01-02 13:40:08.483260103 +0100
@@ -50,9 +50,6 @@ struct options
/* function prototypes */
static void help(const char *progname);
void get_opts(int, char **, struct options *);
-void *pg_malloc(size_t size);
-void *pg_realloc(void *ptr, size_t size);
-char *pg_strdup(const char *str);
void add_one_elt(char *eltname, eary *eary);
char *get_comma_elts(eary *eary);
PGconn *sql_conn(struct options *);
@@ -201,53 +198,6 @@ help(const char *progname)
progname, progname);
}
-void *
-pg_malloc(size_t size)
-{
- void *ptr;
-
- /* Avoid unportable behavior of malloc(0) */
- if (size == 0)
- size = 1;
- ptr = malloc(size);
- if (!ptr)
- {
- fprintf(stderr, "out of memory\n");
- exit(1);
- }
- return ptr;
-}
-
-void *
-pg_realloc(void *ptr, size_t size)
-{
- void *result;
-
- /* Avoid unportable behavior of realloc(NULL, 0) */
- if (ptr == NULL && size == 0)
- size = 1;
- result = realloc(ptr, size);
- if (!result)
- {
- fprintf(stderr, "out of memory\n");
- exit(1);
- }
- return result;
-}
-
-char *
-pg_strdup(const char *str)
-{
- char *result = strdup(str);
-
- if (!result)
- {
- fprintf(stderr, "out of memory\n");
- exit(1);
- }
- return result;
-}
-
/*
* add_one_elt
*
diff -durpN postgresql.2/contrib/pgbench/pgbench.c postgresql.3/contrib/pgbench/pgbench.c
--- postgresql.2/contrib/pgbench/pgbench.c 2013-01-02 09:19:03.655519614 +0100
+++ postgresql.3/contrib/pgbench/pgbench.c 2013-01-02 13:40:26.539378189 +0100
@@ -296,58 +296,6 @@ static void setalarm(int seconds);
static void *threadRun(void *arg);
-/*
- * routines to check mem allocations and fail noisily.
- */
-static void *
-pg_malloc(size_t size)
-{
- void *result;
-
- /* Avoid unportable behavior of malloc(0) */
- if (size == 0)
- size = 1;
- result = malloc(size);
- if (!result)
- {
- fprintf(stderr, "out of memory\n");
- exit(1);
- }
- return result;
-}
-
-static void *
-pg_realloc(void *ptr, size_t size)
-{
- void *result;
-
- /* Avoid unportable behavior of realloc(NULL, 0) */
- if (ptr == NULL && size == 0)
- size = 1;
- result = realloc(ptr, size);
- if (!result)
- {
- fprintf(stderr, "out of memory\n");
- exit(1);
- }
- return result;
-}
-
-static char *
-pg_strdup(const char *s)
-{
- char *result;
-
- result = strdup(s);
- if (!result)
- {
- fprintf(stderr, "out of memory\n");
- exit(1);
- }
- return result;
-}
-
-
static void
usage(void)
{
diff -durpN postgresql.2/contrib/pg_upgrade/pg_upgrade.h postgresql.3/contrib/pg_upgrade/pg_upgrade.h
--- postgresql.2/contrib/pg_upgrade/pg_upgrade.h 2013-01-02 09:19:03.654519603 +0100
+++ postgresql.3/contrib/pg_upgrade/pg_upgrade.h 2013-01-02 12:47:14.578678309 +0100
@@ -438,10 +438,6 @@ void
prep_status(const char *fmt,...)
__attribute__((format(PG_PRINTF_ATTRIBUTE, 1, 2)));
void check_ok(void);
-char *pg_strdup(const char *s);
-void *pg_malloc(size_t size);
-void *pg_realloc(void *ptr, size_t size);
-void pg_free(void *ptr);
const char *getErrorText(int errNum);
unsigned int str2uint(const char *str);
void pg_putenv(const char *var, const char *val);
diff -durpN postgresql.2/contrib/pg_upgrade/util.c postgresql.3/contrib/pg_upgrade/util.c
--- postgresql.2/contrib/pg_upgrade/util.c 2013-01-02 09:19:03.655519614 +0100
+++ postgresql.3/contrib/pg_upgrade/util.c 2013-01-02 12:47:14.579678318 +0100
@@ -213,55 +213,6 @@ get_user_info(char **user_name)
}
-void *
-pg_malloc(size_t size)
-{
- void *p;
-
- /* Avoid unportable behavior of malloc(0) */
- if (size == 0)
- size = 1;
- p = malloc(size);
- if (p == NULL)
- pg_log(PG_FATAL, "%s: out of memory\n", os_info.progname);
- return p;
-}
-
-void *
-pg_realloc(void *ptr, size_t size)
-{
- void *p;
-
- /* Avoid unportable behavior of realloc(NULL, 0) */
- if (ptr == NULL && size == 0)
- size = 1;
- p = realloc(ptr, size);
- if (p == NULL)
- pg_log(PG_FATAL, "%s: out of memory\n", os_info.progname);
- return p;
-}
-
-
-void
-pg_free(void *ptr)
-{
- if (ptr != NULL)
- free(ptr);
-}
-
-
-char *
-pg_strdup(const char *s)
-{
- char *result = strdup(s);
-
- if (result == NULL)
- pg_log(PG_FATAL, "%s: out of memory\n", os_info.progname);
-
- return result;
-}
-
-
/*
* getErrorText()
*
diff -durpN postgresql.2/src/bin/initdb/initdb.c postgresql.3/src/bin/initdb/initdb.c
--- postgresql.2/src/bin/initdb/initdb.c 2013-01-02 11:28:34.369505958 +0100
+++ postgresql.3/src/bin/initdb/initdb.c 2013-01-02 13:38:44.281677642 +0100
@@ -200,8 +200,6 @@ const char *subdirs[] = {
static char bin_path[MAXPGPATH];
static char backend_exec[MAXPGPATH];
-static void *pg_malloc(size_t size);
-static char *pg_strdup(const char *s);
static char **replace_token(char **lines,
const char *token, const char *replacement);
@@ -317,43 +315,6 @@ do { \
#define DIR_SEP "\\"
#endif
-/*
- * routines to check mem allocations and fail noisily.
- *
- * Note that we can't call exit_nicely() on a memory failure, as it calls
- * rmtree() which needs memory allocation. So we just exit with a bang.
- */
-static void *
-pg_malloc(size_t size)
-{
- void *result;
-
- /* Avoid unportable behavior of malloc(0) */
- if (size == 0)
- size = 1;
- result = malloc(size);
- if (!result)
- {
- fprintf(stderr, _("%s: out of memory\n"), progname);
- exit(1);
- }
- return result;
-}
-
-static char *
-pg_strdup(const char *s)
-{
- char *result;
-
- result = strdup(s);
- if (!result)
- {
- fprintf(stderr, _("%s: out of memory\n"), progname);
- exit(1);
- }
- return result;
-}
-
static char *
escape_quotes(const char *src)
{
diff -durpN postgresql.2/src/bin/pg_basebackup/streamutil.c postgresql.3/src/bin/pg_basebackup/streamutil.c
--- postgresql.2/src/bin/pg_basebackup/streamutil.c 2013-01-02 09:19:03.856521815 +0100
+++ postgresql.3/src/bin/pg_basebackup/streamutil.c 2013-01-02 12:57:57.401140484 +0100
@@ -26,43 +26,6 @@ static char *dbpassword = NULL;
PGconn *conn = NULL;
/*
- * strdup() and malloc() replacements that print an error and exit
- * if something goes wrong. Can never return NULL.
- */
-char *
-pg_strdup(const char *s)
-{
- char *result;
-
- result = strdup(s);
- if (!result)
- {
- fprintf(stderr, _("%s: out of memory\n"), progname);
- exit(1);
- }
- return result;
-}
-
-void *
-pg_malloc0(size_t size)
-{
- void *result;
-
- /* Avoid unportable behavior of malloc(0) */
- if (size == 0)
- size = 1;
- result = malloc(size);
- if (!result)
- {
- fprintf(stderr, _("%s: out of memory\n"), progname);
- exit(1);
- }
- MemSet(result, 0, size);
- return result;
-}
-
-
-/*
* Connect to the server. Returns a valid PGconn pointer if connected,
* or NULL on non-permanent error. On permanent error, the function will
* call exit(1) directly.
diff -durpN postgresql.2/src/bin/pg_basebackup/streamutil.h postgresql.3/src/bin/pg_basebackup/streamutil.h
--- postgresql.2/src/bin/pg_basebackup/streamutil.h 2012-10-03 10:40:48.299207401 +0200
+++ postgresql.3/src/bin/pg_basebackup/streamutil.h 2013-01-02 13:34:42.760112017 +0100
@@ -15,8 +15,4 @@ extern PGconn *conn;
exit(code); \
}
-
-extern char *pg_strdup(const char *s);
-extern void *pg_malloc0(size_t size);
-
extern PGconn *GetConnection(void);
diff -durpN postgresql.2/src/bin/pg_ctl/pg_ctl.c postgresql.3/src/bin/pg_ctl/pg_ctl.c
--- postgresql.2/src/bin/pg_ctl/pg_ctl.c 2013-01-02 09:19:03.857521826 +0100
+++ postgresql.3/src/bin/pg_ctl/pg_ctl.c 2013-01-02 13:36:01.760623946 +0100
@@ -118,8 +118,6 @@ write_stderr(const char *fmt,...)
/* This extension allows gcc to check the format string for consistency with
the supplied arguments. */
__attribute__((format(PG_PRINTF_ATTRIBUTE, 1, 2)));
-static void *pg_malloc(size_t size);
-static char *pg_strdup(const char *s);
static void do_advice(void);
static void do_help(void);
static void set_mode(char *modeopt);
@@ -226,42 +224,6 @@ write_stderr(const char *fmt,...)
}
/*
- * routines to check memory allocations and fail noisily.
- */
-
-static void *
-pg_malloc(size_t size)
-{
- void *result;
-
- /* Avoid unportable behavior of malloc(0) */
- if (size == 0)
- size = 1;
- result = malloc(size);
- if (!result)
- {
- write_stderr(_("%s: out of memory\n"), progname);
- exit(1);
- }
- return result;
-}
-
-
-static char *
-pg_strdup(const char *s)
-{
- char *result;
-
- result = strdup(s);
- if (!result)
- {
- write_stderr(_("%s: out of memory\n"), progname);
- exit(1);
- }
- return result;
-}
-
-/*
* Given an already-localized string, print it to stdout unless the
* user has specified that no messages should be printed.
*/
diff -durpN postgresql.2/src/bin/pg_dump/common.c postgresql.3/src/bin/pg_dump/common.c
--- postgresql.2/src/bin/pg_dump/common.c 2013-01-02 09:19:03.857521826 +0100
+++ postgresql.3/src/bin/pg_dump/common.c 2013-01-02 12:47:14.587678379 +0100
@@ -18,7 +18,6 @@
#include
#include "catalog/pg_class.h"
-#include "dumpmem.h"
#include "dumputils.h"
diff -durpN postgresql.2/src/bin/pg_dump/compress_io.c postgresql.3/src/bin/pg_dump/compress_io.c
--- postgresql.2/src/bin/pg_dump/compress_io.c 2013-01-02 09:19:03.857521826 +0100
+++ postgresql.3/src/bin/pg_dump/compress_io.c 2013-01-02 12:47:14.587678379 +0100
@@ -53,7 +53,6 @@
*/
#include "compress_io.h"
-#include "dumpmem.h"
#include "dumputils.h"
/*----------------------
diff -durpN postgresql.2/src/bin/pg_dump/dumpmem.c postgresql.3/src/bin/pg_dump/dumpmem.c
--- postgresql.2/src/bin/pg_dump/dumpmem.c 2013-01-02 09:19:03.857521826 +0100
+++ postgresql.3/src/bin/pg_dump/dumpmem.c 1970-01-01 01:00:00.000000000 +0100
@@ -1,76 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * dumpmem.c
- * Memory allocation routines used by pg_dump, pg_dumpall, and pg_restore
- *
- * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- * src/bin/pg_dump/dumpmem.c
- *
- *-------------------------------------------------------------------------
- */
-#include "postgres_fe.h"
-
-#include "dumputils.h"
-#include "dumpmem.h"
-
-
-/*
- * Safer versions of some standard C library functions. If an
- * out-of-memory condition occurs, these functions will bail out via exit();
- *therefore, their return value is guaranteed to be non-NULL.
- */
-
-char *
-pg_strdup(const char *string)
-{
- char *tmp;
-
- if (!string)
- exit_horribly(NULL, "cannot duplicate null pointer\n");
- tmp = strdup(string);
- if (!tmp)
- exit_horribly(NULL, "out of memory\n");
- return tmp;
-}
-
-void *
-pg_malloc(size_t size)
-{
- void *tmp;
-
- /* Avoid unportable behavior of malloc(0) */
- if (size == 0)
- size = 1;
- tmp = malloc(size);
- if (!tmp)
- exit_horribly(NULL, "out of memory\n");
- return tmp;
-}
-
-void *
-pg_malloc0(size_t size)
-{
- void *tmp;
-
- tmp = pg_malloc(size);
- MemSet(tmp, 0, size);
- return tmp;
-}
-
-void *
-pg_realloc(void *ptr, size_t size)
-{
- void *tmp;
-
- /* Avoid unportable behavior of realloc(NULL, 0) */
- if (ptr == NULL && size == 0)
- size = 1;
- tmp = realloc(ptr, size);
- if (!tmp)
- exit_horribly(NULL, "out of memory\n");
- return tmp;
-}
diff -durpN postgresql.2/src/bin/pg_dump/dumpmem.h postgresql.3/src/bin/pg_dump/dumpmem.h
--- postgresql.2/src/bin/pg_dump/dumpmem.h 2013-01-02 09:19:03.857521826 +0100
+++ postgresql.3/src/bin/pg_dump/dumpmem.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * dumpmem.h
- * Memory allocation routines used by pg_dump, pg_dumpall, and pg_restore
- *
- * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * src/bin/pg_dump/dumpmem.h
- *
- *-------------------------------------------------------------------------
- */
-
-#ifndef DUMPMEM_H
-#define DUMPMEM_H
-
-extern char *pg_strdup(const char *string);
-extern void *pg_malloc(size_t size);
-extern void *pg_malloc0(size_t size);
-extern void *pg_realloc(void *ptr, size_t size);
-
-#endif /* DUMPMEM_H */
diff -durpN postgresql.2/src/bin/pg_dump/Makefile postgresql.3/src/bin/pg_dump/Makefile
--- postgresql.2/src/bin/pg_dump/Makefile 2013-01-02 09:19:03.857521826 +0100
+++ postgresql.3/src/bin/pg_dump/Makefile 2013-01-02 12:47:21.267724965 +0100
@@ -20,7 +20,7 @@ override CPPFLAGS := -I$(libpq_srcdir) $
OBJS= pg_backup_archiver.o pg_backup_db.o pg_backup_custom.o \
pg_backup_null.o pg_backup_tar.o \
- pg_backup_directory.o dumpmem.o dumputils.o compress_io.o $(WIN32RES)
+ pg_backup_directory.o dumputils.o compress_io.o $(WIN32RES)
KEYWRDOBJS = keywords.o kwlookup.o
@@ -35,8 +35,8 @@ pg_dump: pg_dump.o common.o pg_dump_sort
pg_restore: pg_restore.o $(OBJS) $(KEYWRDOBJS) | submake-libpq submake-libpgport
$(CC) $(CFLAGS) pg_restore.o $(KEYWRDOBJS) $(OBJS) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
-pg_dumpall: pg_dumpall.o dumputils.o dumpmem.o $(KEYWRDOBJS) | submake-libpq submake-libpgport
- $(CC) $(CFLAGS) pg_dumpall.o dumputils.o dumpmem.o $(KEYWRDOBJS) $(WIN32RES) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
+pg_dumpall: pg_dumpall.o dumputils.o $(KEYWRDOBJS) | submake-libpq submake-libpgport
+ $(CC) $(CFLAGS) pg_dumpall.o dumputils.o $(KEYWRDOBJS) $(WIN32RES) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
install: all installdirs
$(INSTALL_PROGRAM) pg_dump$(X) '$(DESTDIR)$(bindir)'/pg_dump$(X)
diff -durpN postgresql.2/src/bin/pg_dump/nls.mk postgresql.3/src/bin/pg_dump/nls.mk
--- postgresql.2/src/bin/pg_dump/nls.mk 2012-04-16 19:57:22.596917323 +0200
+++ postgresql.3/src/bin/pg_dump/nls.mk 2013-01-02 12:47:21.268724970 +0100
@@ -3,7 +3,7 @@ CATALOG_NAME = pg_dump
AVAIL_LANGUAGES = de es fr it ja ko pt_BR sv tr zh_CN zh_TW
GETTEXT_FILES = pg_backup_archiver.c pg_backup_db.c pg_backup_custom.c \
pg_backup_null.c pg_backup_tar.c \
- pg_backup_directory.c dumpmem.c dumputils.c compress_io.c \
+ pg_backup_directory.c dumputils.c compress_io.c \
pg_dump.c common.c pg_dump_sort.c \
pg_restore.c pg_dumpall.c \
../../port/exec.c
diff -durpN postgresql.2/src/bin/pg_dump/pg_backup_archiver.c postgresql.3/src/bin/pg_dump/pg_backup_archiver.c
--- postgresql.2/src/bin/pg_dump/pg_backup_archiver.c 2012-10-21 10:56:15.398945610 +0200
+++ postgresql.3/src/bin/pg_dump/pg_backup_archiver.c 2013-01-02 12:47:21.270724967 +0100
@@ -21,7 +21,6 @@
*/
#include "pg_backup_db.h"
-#include "dumpmem.h"
#include "dumputils.h"
#include
diff -durpN postgresql.2/src/bin/pg_dump/pg_backup_custom.c postgresql.3/src/bin/pg_dump/pg_backup_custom.c
--- postgresql.2/src/bin/pg_dump/pg_backup_custom.c 2012-10-03 10:40:48.303207429 +0200
+++ postgresql.3/src/bin/pg_dump/pg_backup_custom.c 2013-01-02 12:47:21.270724967 +0100
@@ -26,7 +26,6 @@
#include "compress_io.h"
#include "dumputils.h"
-#include "dumpmem.h"
/*--------
* Routines in the format interface
diff -durpN postgresql.2/src/bin/pg_dump/pg_backup_db.c postgresql.3/src/bin/pg_dump/pg_backup_db.c
--- postgresql.2/src/bin/pg_dump/pg_backup_db.c 2012-07-25 10:51:14.973507544 +0200
+++ postgresql.3/src/bin/pg_dump/pg_backup_db.c 2013-01-02 12:47:21.271724969 +0100
@@ -11,7 +11,6 @@
*/
#include "pg_backup_db.h"
-#include "dumpmem.h"
#include "dumputils.h"
#include
diff -durpN postgresql.2/src/bin/pg_dump/pg_backup_directory.c postgresql.3/src/bin/pg_dump/pg_backup_directory.c
--- postgresql.2/src/bin/pg_dump/pg_backup_directory.c 2013-01-02 09:19:03.858521837 +0100
+++ postgresql.3/src/bin/pg_dump/pg_backup_directory.c 2013-01-02 12:47:21.272724974 +0100
@@ -34,7 +34,6 @@
*/
#include "compress_io.h"
-#include "dumpmem.h"
#include "dumputils.h"
#include
diff -durpN postgresql.2/src/bin/pg_dump/pg_backup_null.c postgresql.3/src/bin/pg_dump/pg_backup_null.c
--- postgresql.2/src/bin/pg_dump/pg_backup_null.c 2012-04-16 19:57:22.598917347 +0200
+++ postgresql.3/src/bin/pg_dump/pg_backup_null.c 2013-01-02 12:47:21.272724974 +0100
@@ -23,7 +23,6 @@
*/
#include "pg_backup_archiver.h"
-#include "dumpmem.h"
#include "dumputils.h"
#include /* for dup */
diff -durpN postgresql.2/src/bin/pg_dump/pg_backup_tar.c postgresql.3/src/bin/pg_dump/pg_backup_tar.c
--- postgresql.2/src/bin/pg_dump/pg_backup_tar.c 2013-01-02 09:19:03.858521837 +0100
+++ postgresql.3/src/bin/pg_dump/pg_backup_tar.c 2013-01-02 12:47:21.273724983 +0100
@@ -28,7 +28,6 @@
#include "pg_backup.h"
#include "pg_backup_archiver.h"
#include "pg_backup_tar.h"
-#include "dumpmem.h"
#include "dumputils.h"
#include
diff -durpN postgresql.2/src/bin/pg_dump/pg_dumpall.c postgresql.3/src/bin/pg_dump/pg_dumpall.c
--- postgresql.2/src/bin/pg_dump/pg_dumpall.c 2013-01-02 09:19:03.861521870 +0100
+++ postgresql.3/src/bin/pg_dump/pg_dumpall.c 2013-01-02 12:47:21.273724983 +0100
@@ -23,7 +23,6 @@
#include "getopt_long.h"
#include "dumputils.h"
-#include "dumpmem.h"
#include "pg_backup.h"
/* version string we expect back from pg_dump */
diff -durpN postgresql.2/src/bin/pg_dump/pg_dump.c postgresql.3/src/bin/pg_dump/pg_dump.c
--- postgresql.2/src/bin/pg_dump/pg_dump.c 2013-01-02 09:19:03.861521870 +0100
+++ postgresql.3/src/bin/pg_dump/pg_dump.c 2013-01-02 12:47:21.276725015 +0100
@@ -59,7 +59,6 @@
#include "pg_backup_archiver.h"
#include "pg_backup_db.h"
-#include "dumpmem.h"
#include "dumputils.h"
extern char *optarg;
diff -durpN postgresql.2/src/bin/pg_dump/pg_dump_sort.c postgresql.3/src/bin/pg_dump/pg_dump_sort.c
--- postgresql.2/src/bin/pg_dump/pg_dump_sort.c 2013-01-02 09:19:03.861521870 +0100
+++ postgresql.3/src/bin/pg_dump/pg_dump_sort.c 2013-01-02 12:47:21.276725015 +0100
@@ -15,7 +15,6 @@
*/
#include "pg_backup_archiver.h"
#include "dumputils.h"
-#include "dumpmem.h"
/* translator: this is a module name */
static const char *modulename = gettext_noop("sorter");
diff -durpN postgresql.2/src/bin/pg_dump/pg_restore.c postgresql.3/src/bin/pg_dump/pg_restore.c
--- postgresql.2/src/bin/pg_dump/pg_restore.c 2012-10-14 11:09:08.143146185 +0200
+++ postgresql.3/src/bin/pg_dump/pg_restore.c 2013-01-02 12:47:21.277725022 +0100
@@ -41,7 +41,6 @@
#include "pg_backup_archiver.h"
-#include "dumpmem.h"
#include "dumputils.h"
#include
diff -durpN postgresql.2/src/bin/psql/common.c postgresql.3/src/bin/psql/common.c
--- postgresql.2/src/bin/psql/common.c 2013-01-02 09:19:03.863521892 +0100
+++ postgresql.3/src/bin/psql/common.c 2013-01-02 12:47:21.278725029 +0100
@@ -33,56 +33,6 @@ static bool command_no_begin(const char
static bool is_select_command(const char *query);
/*
- * "Safe" wrapper around strdup()
- */
-char *
-pg_strdup(const char *string)
-{
- char *tmp;
-
- if (!string)
- {
- psql_error("%s: pg_strdup: cannot duplicate null pointer (internal error)\n",
- pset.progname);
- exit(EXIT_FAILURE);
- }
- tmp = strdup(string);
- if (!tmp)
- {
- psql_error("out of memory\n");
- exit(EXIT_FAILURE);
- }
- return tmp;
-}
-
-void *
-pg_malloc(size_t size)
-{
- void *tmp;
-
- /* Avoid unportable behavior of malloc(0) */
- if (size == 0)
- size = 1;
- tmp = malloc(size);
- if (!tmp)
- {
- psql_error("out of memory\n");
- exit(EXIT_FAILURE);
- }
- return tmp;
-}
-
-void *
-pg_malloc0(size_t size)
-{
- void *tmp;
-
- tmp = pg_malloc(size);
- MemSet(tmp, 0, size);
- return tmp;
-}
-
-/*
* setQFout
* -- handler for -o command line option and \o command
*
diff -durpN postgresql.2/src/bin/psql/common.h postgresql.3/src/bin/psql/common.h
--- postgresql.2/src/bin/psql/common.h 2013-01-02 09:19:03.863521892 +0100
+++ postgresql.3/src/bin/psql/common.h 2013-01-02 12:47:21.279725035 +0100
@@ -14,15 +14,6 @@
#define atooid(x) ((Oid) strtoul((x), NULL, 10))
-/*
- * Safer versions of some standard C library functions. If an
- * out-of-memory condition occurs, these functions will bail out
- * safely; therefore, their return value is guaranteed to be non-NULL.
- */
-extern char *pg_strdup(const char *string);
-extern void *pg_malloc(size_t size);
-extern void *pg_malloc0(size_t size);
-
extern bool setQFout(const char *fname);
extern void
diff -durpN postgresql.2/src/bin/scripts/common.c postgresql.3/src/bin/scripts/common.c
--- postgresql.2/src/bin/scripts/common.c 2013-01-02 09:19:03.871521980 +0100
+++ postgresql.3/src/bin/scripts/common.c 2013-01-02 13:36:57.808986089 +0100
@@ -278,55 +278,6 @@ executeMaintenanceCommand(PGconn *conn,
}
/*
- * "Safe" wrapper around strdup(). Pulled from psql/common.c
- */
-char *
-pg_strdup(const char *string)
-{
- char *tmp;
-
- if (!string)
- {
- fprintf(stderr, _("pg_strdup: cannot duplicate null pointer (internal error)\n"));
- exit(EXIT_FAILURE);
- }
- tmp = strdup(string);
- if (!tmp)
- {
- fprintf(stderr, _("out of memory\n"));
- exit(EXIT_FAILURE);
- }
- return tmp;
-}
-
-void *
-pg_malloc(size_t size)
-{
- void *tmp;
-
- /* Avoid unportable behavior of malloc(0) */
- if (size == 0)
- size = 1;
- tmp = malloc(size);
- if (!tmp)
- {
- fprintf(stderr, _("out of memory\n"));
- exit(EXIT_FAILURE);
- }
- return tmp;
-}
-
-void *
-pg_malloc0(size_t size)
-{
- void *tmp;
-
- tmp = pg_malloc(size);
- MemSet(tmp, 0, size);
- return tmp;
-}
-
-/*
* Check yes/no answer in a localized way. 1=yes, 0=no, -1=neither.
*/
diff -durpN postgresql.2/src/bin/scripts/common.h postgresql.3/src/bin/scripts/common.h
--- postgresql.2/src/bin/scripts/common.h 2013-01-02 09:19:03.871521980 +0100
+++ postgresql.3/src/bin/scripts/common.h 2013-01-02 13:36:44.504900390 +0100
@@ -50,8 +50,4 @@ extern bool yesno_prompt(const char *que
extern void setup_cancel_handler(void);
-extern char *pg_strdup(const char *string);
-extern void *pg_malloc(size_t size);
-extern void *pg_malloc0(size_t size);
-
#endif /* COMMON_H */
diff -durpN postgresql.2/src/include/port.h postgresql.3/src/include/port.h
--- postgresql.2/src/include/port.h 2013-01-02 11:28:47.256587185 +0100
+++ postgresql.3/src/include/port.h 2013-01-02 13:49:38.686060590 +0100
@@ -462,6 +462,17 @@ extern char *inet_net_ntop(int af, const
/* port/pgcheckdir.c */
extern int pg_check_dir(const char *dir);
+/* port/pgmalloc.c */
+extern char *pg_strdup(const char *string);
+
+extern void *pg_malloc(size_t size);
+
+extern void *pg_malloc0(size_t size);
+
+extern void *pg_realloc(void *ptr, size_t size);
+
+extern void pg_free(void *ptr);
+
/* port/pgmkdirp.c */
extern int pg_mkdir_p(char *path, int omode);
diff -durpN postgresql.2/src/port/Makefile postgresql.3/src/port/Makefile
--- postgresql.2/src/port/Makefile 2013-01-02 10:43:57.358410221 +0100
+++ postgresql.3/src/port/Makefile 2013-01-02 12:48:18.788120056 +0100
@@ -31,7 +31,7 @@ override CPPFLAGS := -I$(top_builddir)/s
LIBS += $(PTHREAD_LIBS)
OBJS = $(LIBOBJS) chklocale.o dirmod.o erand48.o exec.o fls.o inet_net_ntop.o \
- noblock.o path.o pgcheckdir.o pg_crc.o pgmkdirp.o pgsleep.o \
+ noblock.o path.o pgcheckdir.o pg_crc.o pgmalloc.o pgmkdirp.o pgsleep.o \
pgstrcasecmp.o quotes.o qsort.o qsort_arg.o sprompt.o tar.o thread.o
# foo_srv.o and foo.o are both built from foo.c, but only foo.o has -DFRONTEND
diff -durpN postgresql.2/src/port/pgmalloc.c postgresql.3/src/port/pgmalloc.c
--- postgresql.2/src/port/pgmalloc.c 1970-01-01 01:00:00.000000000 +0100
+++ postgresql.3/src/port/pgmalloc.c 2013-01-02 12:51:05.238252844 +0100
@@ -0,0 +1,96 @@
+/*-------------------------------------------------------------------------
+ *
+ * pgmalloc.c
+ * Functions for allocating memory and
+ * exiting on out-of-memory
+ *
+ *
+ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ *
+ * IDENTIFICATION
+ * src/port/pgmalloc.c
+ *
+ *-------------------------------------------------------------------------
+ */
+
+#ifdef FRONTEND
+#include "postgres_fe.h"
+
+#include
+
+/*
+ * "Safe" wrapper around strdup()
+ */
+char *
+pg_strdup(const char *string)
+{
+ char *tmp;
+
+ if (!string)
+ {
+ fprintf(stderr, "pg_strdup: cannot duplicate null pointer (internal error)\n");
+ exit(1);
+ }
+ tmp = strdup(string);
+ if (!tmp)
+ {
+ fprintf(stderr, "pg_strdup: out of memory\n");
+ exit(1);
+ }
+ return tmp;
+}
+
+void *
+pg_malloc(size_t size)
+{
+ void *tmp;
+
+ /* Avoid unportable behavior of malloc(0) */
+ if (size == 0)
+ size = 1;
+ tmp = malloc(size);
+ if (!tmp)
+ {
+ fprintf(stderr, "pg_malloc: out of memory\n");
+ exit(1);
+ }
+ return tmp;
+}
+
+void *
+pg_malloc0(size_t size)
+{
+ void *tmp;
+
+ tmp = pg_malloc(size);
+ MemSet(tmp, 0, size);
+ return tmp;
+}
+
+void *
+pg_realloc(void *ptr, size_t size)
+{
+ void *tmp;
+
+ /* Avoid unportable behavior of realloc(NULL, 0) */
+ if (ptr == NULL && size == 0)
+ size = 1;
+ tmp = realloc(ptr, size);
+ if (!tmp)
+ {
+ fprintf(stderr, "pg_realloc: out of memory\n");
+ exit(1);
+ }
+ return tmp;
+}
+
+void
+pg_free(void *ptr)
+{
+ if (ptr != NULL)
+ free(ptr);
+}
+
+#endif