[前][次][番号順一覧][スレッド一覧]

ruby-changes:18629

From: nobu <ko1@a...>
Date: Tue, 25 Jan 2011 08:47:31 +0900 (JST)
Subject: [ruby-changes:18629] Ruby:r30653 (trunk): * dln_find.c (dln_find_1): omit too long pathnames.

nobu	2011-01-25 08:42:01 +0900 (Tue, 25 Jan 2011)

  New Revision: 30653

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30653

  Log:
    * dln_find.c (dln_find_1): omit too long pathnames.

  Modified files:
    trunk/ChangeLog
    trunk/dln_find.c

Index: dln_find.c
===================================================================
--- dln_find.c	(revision 30652)
+++ dln_find.c	(revision 30653)
@@ -128,7 +128,7 @@
     register const char *ep;
     register char *bp;
     struct stat st;
-    size_t i, fspace;
+    size_t i, fnlen, fspace;
 #ifdef DOSISH
     static const char extension[][5] = {
 	EXECUTABLE_EXTS,
@@ -140,12 +140,17 @@
     const char *p = fname;
 
     static const char pathname_too_long[] = "openpath: pathname too long (ignored)\n\
-\tDirectory \"%.*s\"\n\tFile \"%s\"\n";
-#define PATHNAME_TOO_LONG() fprintf(stderr, pathname_too_long, (int)(bp - fbuf), fbuf, fname)
+\tDirectory \"%.*s\"%s\n\tFile \"%.*s\"%s\n";
+#define PATHNAME_TOO_LONG() fprintf(stderr, pathname_too_long, \
+				    ((bp - fbuf) > 100 ? 100 : (int)(bp - fbuf)), fbuf, \
+				    ((bp - fbuf) > 100 ? "..." : ""), \
+				    (fnlen > 100 ? 100 : (int)fnlen), fname, \
+				    (fnlen > 100 ? "..." : ""))
 
 #define RETURN_IF(expr) if (expr) return (char *)fname;
 
     RETURN_IF(!fname);
+    fnlen = strlen(fname);
 #ifdef DOSISH
 # ifndef CharNext
 # define CharNext(p) ((p)+1)
@@ -262,7 +267,7 @@
 	}
 
 	/* now append the file name */
-	i = strlen(fname);
+	i = fnlen;
 	if (fspace < i) {
 	  toolong:
 	    PATHNAME_TOO_LONG();
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 30652)
+++ ChangeLog	(revision 30653)
@@ -1,3 +1,7 @@
+Tue Jan 25 08:41:58 2011  Nobuyoshi Nakada  <nobu@r...>
+
+	* dln_find.c (dln_find_1): omit too long pathnames.
+
 Tue Jan 25 08:28:19 2011  Nobuyoshi Nakada  <nobu@r...>
 
 	* string.c (rb_str_resize): get rid of out-of-bound access.

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]