summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2018-04-15 13:02:11 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2018-04-15 13:02:11 -0400
commit16d3dbe2f30ab40a78873029d33aeed2765fa0d0 (patch)
tree32aa4a31471a841a151bd79aec4e324ebd5d02c6
parentd014b38df60fe7f486bfaeb9b55a4851bf32c86f (diff)
Fix potentially-unportable code in contrib/adminpack.
Spelling access(2)'s second argument as "2" is just horrid. POSIX makes no promises as to the numeric values of W_OK and related macros. Even if it accidentally works as intended on every supported platform, it's still unreadable and inconsistent with adjacent code. In passing, don't spell "NULL" as "0" either. Yes, that's legal C; no, it's not project style. Back-patch, just in case the unportability is real and not theoretical. (Most likely, even if a platform had different bit assignments for access()'s modes, there'd not be an observable behavior difference here; but I'm being paranoid today.)
-rw-r--r--contrib/adminpack/adminpack.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/contrib/adminpack/adminpack.c b/contrib/adminpack/adminpack.c
index f3f8e7f1e41..f1ae4b8285a 100644
--- a/contrib/adminpack/adminpack.c
+++ b/contrib/adminpack/adminpack.c
@@ -173,7 +173,7 @@ pg_file_rename(PG_FUNCTION_ARGS)
fn1 = convert_and_check_filename(PG_GETARG_TEXT_PP(0), false);
fn2 = convert_and_check_filename(PG_GETARG_TEXT_PP(1), false);
if (PG_ARGISNULL(2))
- fn3 = 0;
+ fn3 = NULL;
else
fn3 = convert_and_check_filename(PG_GETARG_TEXT_PP(2), false);
@@ -195,7 +195,7 @@ pg_file_rename(PG_FUNCTION_ARGS)
PG_RETURN_BOOL(false);
}
- rc = access(fn3 ? fn3 : fn2, 2);
+ rc = access(fn3 ? fn3 : fn2, W_OK);
if (rc >= 0 || errno != ENOENT)
{
ereport(ERROR,