ruby-changes:18636
From: nobu <ko1@a...>
Date: Thu, 27 Jan 2011 08:23:07 +0900 (JST)
Subject: [ruby-changes:18636] Ruby:r30660 (trunk): * dln_find.c (dln_find_1): use rb_warning and return immediately
nobu 2011-01-27 08:22:54 +0900 (Thu, 27 Jan 2011) New Revision: 30660 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30660 Log: * dln_find.c (dln_find_1): use rb_warning and return immediately if fname is longer than buffer. Modified files: trunk/ChangeLog trunk/dln_find.c trunk/version.h Index: dln_find.c =================================================================== --- dln_find.c (revision 30659) +++ dln_find.c (revision 30660) @@ -15,10 +15,14 @@ #define dln_memerror rb_memerror #define dln_exit rb_exit #define dln_loaderror rb_loaderror +#define dln_warning rb_warning +#define dln_warning_arg #else #define dln_notimplement --->>> dln not implemented <<<--- #define dln_memerror abort #define dln_exit exit +#define dln_warning fprintf +#define dln_warning_arg stderr, static void dln_loaderror(const char *format, ...); #endif #include "dln.h" @@ -141,16 +145,23 @@ static const char pathname_too_long[] = "openpath: pathname too long (ignored)\n\ \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 PATHNAME_TOO_LONG() dln_warning(dln_warning_arg 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); + if (fnlen >= size) { + dln_warning(dln_warning_arg + "openpath: pathname too long (ignored)\n\tFile \"%.*s\"%s\n", + (fnlen > 100 ? 100 : (int)fnlen), fname, + (fnlen > 100 ? "..." : "")); + return NULL; + } #ifdef DOSISH # ifndef CharNext # define CharNext(p) ((p)+1) Index: ChangeLog =================================================================== --- ChangeLog (revision 30659) +++ ChangeLog (revision 30660) @@ -1,3 +1,8 @@ +Thu Jan 27 08:22:49 2011 Nobuyoshi Nakada <nobu@r...> + + * dln_find.c (dln_find_1): use rb_warning and return immediately + if fname is longer than buffer. + Wed Jan 26 22:57:30 2011 CHIKANAGA Tomoyuki <nagachika00@g...> * class.c (clone_method): add GC guard to prevent intermediate Index: version.h =================================================================== --- version.h (revision 30659) +++ version.h (revision 30660) @@ -1,11 +1,11 @@ #define RUBY_VERSION "1.9.3" -#define RUBY_RELEASE_DATE "2011-01-26" +#define RUBY_RELEASE_DATE "2011-01-27" #define RUBY_PATCHLEVEL -1 #define RUBY_BRANCH_NAME "trunk" #define RUBY_RELEASE_YEAR 2011 #define RUBY_RELEASE_MONTH 1 -#define RUBY_RELEASE_DAY 26 +#define RUBY_RELEASE_DAY 27 #include "ruby/version.h" -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/