Eliminate one way canonicalize_filename_mode could exit.
authorJim Meyering <jim@meyering.net>
Tue, 19 Jun 2007 06:13:40 +0000 (06:13 +0000)
committerJim Meyering <jim@meyering.net>
Tue, 19 Jun 2007 06:13:40 +0000 (06:13 +0000)
* lib/canonicalize.c (canonicalize_filename_mode):
Use mreadlink_with_size, not xreadlink_with_size.

ChangeLog
lib/canonicalize.c

index 5fe1932a02444e58b02eef05ccc27686a9777544..07db54214b452e154c5b684a9c5e5d75a48c9a22 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-06-19  Jim Meyering  <jim@meyering.net>
+
+       Eliminate one way canonicalize_filename_mode could exit.
+       * lib/canonicalize.c (canonicalize_filename_mode):
+       Use mreadlink_with_size, not xreadlink_with_size.
+
 2007-06-18  Paul Eggert  <eggert@cs.ucla.edu>
 
        Detect porting problems to FreeBSD/arm, which has time_t wider than
index 48e4a239a355ceeb667018a9c1398ce893b0224d..eed7f40a83082c38e4f2f7b10f20c20f621ce997 100644 (file)
@@ -47,7 +47,7 @@
 #endif
 
 #include "pathmax.h"
-#include "xreadlink.h"
+#include "mreadlink.h"
 
 #if !HAVE_CANONICALIZE_FILE_NAME
 /* Return the canonical absolute name of file NAME.  A canonical name
@@ -246,10 +246,10 @@ canonicalize_filename_mode (const char *name, canonicalize_mode_t can_mode)
                    goto error;
                }
 
-             buf = xreadlink_with_size (rname, st.st_size);
+             buf = mreadlink_with_size (rname, st.st_size);
              if (!buf)
                {
-                 if (can_mode == CAN_MISSING)
+                 if (can_mode == CAN_MISSING && errno != ENOMEM)
                    continue;
                  else
                    goto error;