ruby-changes:13091
From: nobu <ko1@a...>
Date: Fri, 11 Sep 2009 09:45:27 +0900 (JST)
Subject: [ruby-changes:13091] Ruby:r24839 (trunk): * dln.c (aix_loaderror): get rid of using uninitialized value in the
nobu 2009-09-11 09:45:13 +0900 (Fri, 11 Sep 2009) New Revision: 24839 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24839 Log: * dln.c (aix_loaderror): get rid of using uninitialized value in the case loadquery fails. fixed wrong index variable usage. see [ruby-core:25479]. Modified files: trunk/ChangeLog trunk/dln.c Index: ChangeLog =================================================================== --- ChangeLog (revision 24838) +++ ChangeLog (revision 24839) @@ -1,3 +1,9 @@ +Fri Sep 11 09:45:11 2009 Nobuyoshi Nakada <nobu@r...> + + * dln.c (aix_loaderror): get rid of using uninitialized value in the + case loadquery fails. fixed wrong index variable usage. see + [ruby-core:25479]. + Fri Sep 11 07:52:43 2009 NARUSE, Yui <naruse@r...> * unicode.c (onigenc_unicode_property_name_to_ctype): Index: dln.c =================================================================== --- dln.c (revision 24838) +++ dln.c (revision 24839) @@ -1149,10 +1149,10 @@ static void aix_loaderror(const char *pathname) { - char *message[8], errbuf[1024]; + char *message[1024], errbuf[1024]; int i,j; - struct errtab { + static const struct errtab { int errnum; char *errstr; } load_errtab[] = { @@ -1173,15 +1173,16 @@ #define LOAD_ERRTAB_LEN (sizeof(load_errtab)/sizeof(load_errtab[0])) #define ERRBUF_APPEND(s) strncat(errbuf, s, sizeof(errbuf)-strlen(errbuf)-1) - snprintf(errbuf, 1024, "load failed - %s ", pathname); + snprintf(errbuf, sizeof(errbuf), "load failed - %s ", pathname); - if (!loadquery(1, &message[0], sizeof(message))) + message[0] = NULL; + if (!loadquery(L_GETMESSAGE, &message[0], sizeof(message))) ERRBUF_APPEND(strerror(errno)); for(i = 0; message[i] && *message[i]; i++) { int nerr = atoi(message[i]); for (j=0; j<LOAD_ERRTAB_LEN; j++) { - if (nerr == load_errtab[i].errnum && load_errtab[i].errstr) - ERRBUF_APPEND(load_errtab[i].errstr); + if (nerr == load_errtab[j].errnum && load_errtab[j].errstr) + ERRBUF_APPEND(load_errtab[j].errstr); } while (isdigit(*message[i])) message[i]++; ERRBUF_APPEND(message[i]); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/