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

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/

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