mirror of
https://github.com/postgres/postgres.git
synced 2025-08-31 17:02:12 +03:00
Due to simplistic quoting and confusion of database names with conninfo strings, roles with the CREATEDB or CREATEROLE option could escalate to superuser privileges when a superuser next ran certain maintenance commands. The new coding rule for PQconnectdbParams() calls, documented at conninfo_array_parse(), is to pass expand_dbname=true and wrap literal database names in a trivial connection string. Escape zero-length values in appendConnStrVal(). Back-patch to 9.1 (all supported versions). Nathan Bossart, Michael Paquier, and Noah Misch. Reviewed by Peter Eisentraut. Reported by Nathan Bossart. Security: CVE-2016-5424
69 lines
2.7 KiB
Makefile
69 lines
2.7 KiB
Makefile
#-------------------------------------------------------------------------
|
|
#
|
|
# Makefile for src/bin/scripts
|
|
#
|
|
# Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
|
|
# Portions Copyright (c) 1994, Regents of the University of California
|
|
#
|
|
# src/bin/scripts/Makefile
|
|
#
|
|
#-------------------------------------------------------------------------
|
|
|
|
PGFILEDESC = "PostgreSQL utility"
|
|
PGAPPICON=win32
|
|
|
|
subdir = src/bin/scripts
|
|
top_builddir = ../../..
|
|
include $(top_builddir)/src/Makefile.global
|
|
|
|
PROGRAMS = createdb createlang createuser dropdb droplang dropuser clusterdb vacuumdb reindexdb
|
|
|
|
override CPPFLAGS := -I$(top_srcdir)/src/bin/pg_dump -I$(top_srcdir)/src/bin/psql -I$(libpq_srcdir) $(CPPFLAGS)
|
|
|
|
all: $(PROGRAMS)
|
|
|
|
%: %.o $(WIN32RES)
|
|
$(CC) $(CFLAGS) $^ $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
|
|
|
|
createdb: createdb.o common.o dumputils.o kwlookup.o keywords.o | submake-libpq
|
|
createlang: createlang.o common.o print.o mbprint.o | submake-libpq
|
|
createuser: createuser.o common.o dumputils.o kwlookup.o keywords.o | submake-libpq
|
|
dropdb: dropdb.o common.o dumputils.o kwlookup.o keywords.o | submake-libpq
|
|
droplang: droplang.o common.o print.o mbprint.o | submake-libpq
|
|
dropuser: dropuser.o common.o dumputils.o kwlookup.o keywords.o | submake-libpq
|
|
clusterdb: clusterdb.o common.o dumputils.o kwlookup.o keywords.o | submake-libpq
|
|
vacuumdb: vacuumdb.o common.o dumputils.o kwlookup.o keywords.o | submake-libpq
|
|
reindexdb: reindexdb.o common.o dumputils.o kwlookup.o keywords.o | submake-libpq
|
|
|
|
dumputils.c keywords.c: % : $(top_srcdir)/src/bin/pg_dump/%
|
|
rm -f $@ && $(LN_S) $< .
|
|
|
|
print.c mbprint.c : % : $(top_srcdir)/src/bin/psql/%
|
|
rm -f $@ && $(LN_S) $< .
|
|
|
|
kwlookup.c: % : $(top_srcdir)/src/backend/parser/%
|
|
rm -f $@ && $(LN_S) $< .
|
|
|
|
install: all installdirs
|
|
$(INSTALL_PROGRAM) createdb$(X) '$(DESTDIR)$(bindir)'/createdb$(X)
|
|
$(INSTALL_PROGRAM) dropdb$(X) '$(DESTDIR)$(bindir)'/dropdb$(X)
|
|
$(INSTALL_PROGRAM) createlang$(X) '$(DESTDIR)$(bindir)'/createlang$(X)
|
|
$(INSTALL_PROGRAM) droplang$(X) '$(DESTDIR)$(bindir)'/droplang$(X)
|
|
$(INSTALL_PROGRAM) createuser$(X) '$(DESTDIR)$(bindir)'/createuser$(X)
|
|
$(INSTALL_PROGRAM) dropuser$(X) '$(DESTDIR)$(bindir)'/dropuser$(X)
|
|
$(INSTALL_PROGRAM) clusterdb$(X) '$(DESTDIR)$(bindir)'/clusterdb$(X)
|
|
$(INSTALL_PROGRAM) vacuumdb$(X) '$(DESTDIR)$(bindir)'/vacuumdb$(X)
|
|
$(INSTALL_PROGRAM) reindexdb$(X) '$(DESTDIR)$(bindir)'/reindexdb$(X)
|
|
|
|
installdirs:
|
|
$(MKDIR_P) '$(DESTDIR)$(bindir)'
|
|
|
|
uninstall:
|
|
rm -f $(addprefix '$(DESTDIR)$(bindir)'/, $(addsuffix $(X), $(PROGRAMS)))
|
|
|
|
|
|
clean distclean maintainer-clean:
|
|
rm -f $(addsuffix $(X), $(PROGRAMS)) $(addsuffix .o, $(PROGRAMS))
|
|
rm -f common.o dumputils.o kwlookup.o keywords.o print.o mbprint.o $(WIN32RES)
|
|
rm -f dumputils.c print.c mbprint.c kwlookup.c keywords.c
|