projects
/
postgresql.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c1ff2d8
)
In passwordFromFile, don't leak the open file after stat failures.
author
Tom Lane
<tgl@sss.pgh.pa.us>
Sun, 29 Sep 2024 17:40:03 +0000
(13:40 -0400)
committer
Tom Lane
<tgl@sss.pgh.pa.us>
Sun, 29 Sep 2024 17:40:03 +0000
(13:40 -0400)
Oversight in
e882bcae0
. Per Coverity.
src/interfaces/libpq/fe-connect.c
patch
|
blob
|
blame
|
history
diff --git
a/src/interfaces/libpq/fe-connect.c
b/src/interfaces/libpq/fe-connect.c
index d5a72587d24e62f9d359daaec6c10dbeab8fba55..4094bcbcf0f05cfc1c924589c5139f24f8675ada 100644
(file)
--- a/
src/interfaces/libpq/fe-connect.c
+++ b/
src/interfaces/libpq/fe-connect.c
@@
-7482,13
+7482,17
@@
passwordFromFile(const char *hostname, const char *port, const char *dbname,
#ifndef WIN32
if (fstat(fileno(fp), &stat_buf) != 0)
+ {
+ fclose(fp);
return NULL;
+ }
if (!S_ISREG(stat_buf.st_mode))
{
fprintf(stderr,
libpq_gettext("WARNING: password file \"%s\" is not a plain file\n"),
pgpassfile);
+ fclose(fp);
return NULL;
}
@@
-7498,6
+7502,7
@@
passwordFromFile(const char *hostname, const char *port, const char *dbname,
fprintf(stderr,
libpq_gettext("WARNING: password file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n"),
pgpassfile);
+ fclose(fp);
return NULL;
}
#else