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/