fix printf warning
[oweals/busybox.git] / libbb / xgetcwd.c
index 27466816650e2a6e5e571eae070d54689a9ec18e..1fcdba19815e33c5bc986cc36eea9e1e4ab4c82b 100644 (file)
@@ -3,13 +3,14 @@
  * Copyright (C) 1992, 1996 Free Software Foundation, Inc.
  * Written by David MacKenzie <djm@gnu.ai.mit.edu>.
  *
- * Special function for busybox written by Vladimir Oleynik <vodz@usa.net>
+ * Special function for busybox written by Vladimir Oleynik <dzo@simtreas.ru>
 */
 
 #include <stdlib.h>
 #include <errno.h>
 #include <unistd.h>
 #include <limits.h>
+#include <sys/param.h>
 #include "libbb.h"
 
 /* Amount to increase buffer size by in each try. */
@@ -26,25 +27,20 @@ xgetcwd (char *cwd)
   char *ret;
   unsigned path_max;
 
-  errno = 0;
   path_max = (unsigned) PATH_MAX;
   path_max += 2;                /* The getcwd docs say to do this. */
 
   if(cwd==0)
        cwd = xmalloc (path_max);
 
-  errno = 0;
   while ((ret = getcwd (cwd, path_max)) == NULL && errno == ERANGE) {
       path_max += PATH_INCR;
       cwd = xrealloc (cwd, path_max);
-      errno = 0;
   }
 
   if (ret == NULL) {
-      int save_errno = errno;
       free (cwd);
-      errno = save_errno;
-      perror_msg("getcwd()");
+      bb_perror_msg("getcwd()");
       return NULL;
   }