From: Jim Meyering <jim@meyering.net>
Date: Tue, 19 Jun 2007 06:13:40 +0000 (+0000)
Subject: Eliminate one way canonicalize_filename_mode could exit.
X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8adc35bb3da3ef19e2e3260c3c56f8abb8330c21;p=pspp

Eliminate one way canonicalize_filename_mode could exit.
* lib/canonicalize.c (canonicalize_filename_mode):
Use mreadlink_with_size, not xreadlink_with_size.
---

diff --git a/ChangeLog b/ChangeLog
index 5fe1932a02..07db54214b 100644
--- 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
diff --git a/lib/canonicalize.c b/lib/canonicalize.c
index 48e4a239a3..eed7f40a83 100644
--- a/lib/canonicalize.c
+++ b/lib/canonicalize.c
@@ -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;