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

Commit7d72fd9

Browse files
committed
Avoid null pointer dereference if error result lacks SQLSTATE.
Although error results received from the backend should always havea SQLSTATE field, ones generated by libpq won't, making this codevulnerable to a crash after, say, untimely loss of connection.Noted by Coverity.Oversight in commit403a3d9. Back-patch to 9.5, as that was.
1 parent41a033b commit7d72fd9

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

‎src/bin/pg_dump/pg_backup_db.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -543,9 +543,9 @@ bool
543543
IsLockTableGeneric(Archive*AHX)
544544
{
545545
ArchiveHandle*AH= (ArchiveHandle*)AHX;
546-
PGresult*res;
547-
char*sqlstate;
548-
boolretval;
546+
PGresult*res;
547+
char*sqlstate;
548+
boolretval;
549549

550550
if (AHX->remoteVersion >=140000)
551551
return true;
@@ -572,13 +572,15 @@ IsLockTableGeneric(Archive *AHX)
572572
break;
573573
casePGRES_FATAL_ERROR:
574574
sqlstate=PQresultErrorField(res,PG_DIAG_SQLSTATE);
575-
if (strcmp(sqlstate,ERRCODE_WRONG_OBJECT_TYPE)==0)
575+
if (sqlstate&&
576+
strcmp(sqlstate,ERRCODE_WRONG_OBJECT_TYPE)==0)
576577
{
577578
retval= false;
578579
break;
579580
}
580-
elseif (strcmp(sqlstate,ERRCODE_LOCK_NOT_AVAILABLE)==0||
581-
strcmp(sqlstate,ERRCODE_INSUFFICIENT_PRIVILEGE)==0)
581+
elseif (sqlstate&&
582+
(strcmp(sqlstate,ERRCODE_LOCK_NOT_AVAILABLE)==0||
583+
strcmp(sqlstate,ERRCODE_INSUFFICIENT_PRIVILEGE)==0))
582584
{
583585
retval= true;
584586
break;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp