Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1b51018

Browse files
committed
Fix up poor handling of unsupported-platform case in requirepeer patch.
1 parent25241ae commit1b51018

File tree

1 file changed

+20
-21
lines changed

1 file changed

+20
-21
lines changed

‎src/interfaces/libpq/fe-connect.c

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.401 2010/07/1816:42:20 tgl Exp $
11+
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.402 2010/07/1817:08:11 tgl Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -1751,15 +1751,15 @@ PQconnectPoll(PGconn *conn)
17511751
char*startpacket;
17521752
intpacketlen;
17531753

1754-
#ifdefHAVE_UNIX_SOCKETS
1755-
if (conn->requirepeer)
1754+
if (conn->requirepeer&&conn->requirepeer[0])
17561755
{
1756+
#if defined(HAVE_GETPEEREID)|| defined(SO_PEERCRED)|| defined(HAVE_GETPEERUCRED)
17571757
charpwdbuf[BUFSIZ];
17581758
structpasswdpass_buf;
17591759
structpasswd*pass;
17601760
uid_tuid;
17611761

1762-
#if defined(HAVE_GETPEEREID)
1762+
#if defined(HAVE_GETPEEREID)
17631763
gid_tgid;
17641764

17651765
errno=0;
@@ -1770,12 +1770,13 @@ PQconnectPoll(PGconn *conn)
17701770
pqStrerror(errno,sebuf,sizeof(sebuf)));
17711771
gotoerror_return;
17721772
}
1773-
#elif defined(SO_PEERCRED)
1773+
#elif defined(SO_PEERCRED)
17741774
structucredpeercred;
17751775
ACCEPT_TYPE_ARG3so_len=sizeof(peercred);
17761776

17771777
errno=0;
1778-
if (getsockopt(conn->sock,SOL_SOCKET,SO_PEERCRED,&peercred,&so_len)!=0||
1778+
if (getsockopt(conn->sock,SOL_SOCKET,SO_PEERCRED,
1779+
&peercred,&so_len)!=0||
17791780
so_len!=sizeof(peercred))
17801781
{
17811782
appendPQExpBuffer(&conn->errorMessage,
@@ -1784,10 +1785,10 @@ PQconnectPoll(PGconn *conn)
17841785
gotoerror_return;
17851786
}
17861787
uid=peercred.uid;
1787-
#elif defined(HAVE_GETPEERUCRED)
1788+
#elif defined(HAVE_GETPEERUCRED)
17881789
ucred_t*ucred;
17891790

1790-
ucred=NULL;/* must be initialized to NULL */
1791+
ucred=NULL;/* must be initialized to NULL */
17911792
if (getpeerucred(sock,&ucred)==-1)
17921793
{
17931794
appendPQExpBuffer(&conn->errorMessage,
@@ -1805,35 +1806,33 @@ PQconnectPoll(PGconn *conn)
18051806
gotoerror_return;
18061807
}
18071808
ucred_free(ucred);
1808-
# else
1809-
appendPQExpBuffer(&conn->errorMessage,
1810-
libpq_gettext("requirepeer parameter is not supported on this platform\n"));
1811-
gotoerror_return;
1812-
# endif
1809+
#else
1810+
#error missing implementation method for requirepeer
1811+
#endif
18131812

18141813
pqGetpwuid(uid,&pass_buf,pwdbuf,sizeof(pwdbuf),&pass);
18151814

18161815
if (pass==NULL)
18171816
{
18181817
appendPQExpBuffer(&conn->errorMessage,
1819-
# if defined(SO_PEERCRED)
18201818
libpq_gettext("local user with ID %d does not exist\n"),
1821-
(int)peercred.uid);
1822-
#else
1823-
libpq_gettext("matching local user does not exist\n"));
1824-
#endif
1819+
(int)uid);
18251820
gotoerror_return;
18261821
}
18271822

18281823
if (strcmp(pass->pw_name,conn->requirepeer)!=0)
18291824
{
18301825
appendPQExpBuffer(&conn->errorMessage,
1831-
libpq_gettext("requirepeerfailed (actual: %s != required: %s)\n"),
1832-
pass->pw_name,conn->requirepeer);
1826+
libpq_gettext("requirepeerspecifies \"%s\", but actual peer user name is \"%s\"\n"),
1827+
conn->requirepeer,pass->pw_name);
18331828
gotoerror_return;
18341829
}
1830+
#else/* can't support requirepeer */
1831+
appendPQExpBuffer(&conn->errorMessage,
1832+
libpq_gettext("requirepeer parameter is not supported on this platform\n"));
1833+
gotoerror_return;
1834+
#endif
18351835
}
1836-
#endif/* HAVE_UNIX_SOCKETS */
18371836

18381837
#ifdefUSE_SSL
18391838

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp