I just noticed a warning in pg_upgrade:
 
option.c: In function *parseCommandLine*:
option.c:96:8: warning: ignoring return value of *getcwd*,
declared
with attribute warn_unused_result
 
It looks like it might be worth testing the return value here for
NULL, which would indicate an error accessing the current working
directory.  Untested patch attached for purposes of discussion.
 
http://www.kernel.org/doc/man-pages/online/pages/man3/getcwd.3.html
 
-Kevin

*** a/contrib/pg_upgrade/option.c
--- b/contrib/pg_upgrade/option.c
***************
*** 56,61 **** parseCommandLine(int argc, char *argv[])
--- 56,62 ----
        int                     option;                 /* Command line option 
*/
        int                     optindex = 0;   /* used by getopt_long */
        int                     os_user_effective_id;
+       char            *return_buf;
  
        user_opts.transfer_mode = TRANSFER_MODE_COPY;
  
***************
*** 93,99 **** parseCommandLine(int argc, char *argv[])
        if (os_user_effective_id == 0)
                pg_log(PG_FATAL, "%s: cannot be run as root\n", 
os_info.progname);
  
!       getcwd(os_info.cwd, MAXPGPATH);
  
        while ((option = getopt_long(argc, argv, "d:D:b:B:cgG:kl:o:O:p:P:u:v",
                                                                 long_options, 
&optindex)) != -1)
--- 94,102 ----
        if (os_user_effective_id == 0)
                pg_log(PG_FATAL, "%s: cannot be run as root\n", 
os_info.progname);
  
!       return_buf = getcwd(os_info.cwd, MAXPGPATH);
!       if (return_buf == NULL)
!               pg_log(PG_FATAL, "Could not access current working directory: 
%s\n", getErrorText(errno));
  
        while ((option = getopt_long(argc, argv, "d:D:b:B:cgG:kl:o:O:p:P:u:v",
                                                                 long_options, 
&optindex)) != -1)
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to