On Tue, 2009-04-21 at 13:53 +0900, Hiroshi Ito wrote:
> zw> Index: src/helper/jim.c
> zw> ===================================================================
> zw> --- src/helper/jim.c      (revision 1478)
> zw> +++ src/helper/jim.c      (working copy)
> zw> @@ -133,7 +133,8 @@
> zw>   buf[sizeof(buf)-1] = 0;
> zw>  #else
> zw>   char *buf;
>         int result;
> 
> zw> - vasprintf( &buf, fmt, ap );
> zw> + int result = vasprintf( &buf, fmt, ap );
>         result = vasprintf( &buf, fmt, ap );
> 
>     If you want to change, above is better to do. 
>     but it is not necessary to do.

Done, though it is not my wont; gcc/glibc put me up to it.

> zw> + if (result < 0) exit(-1);
> zw>  #endif
> zw>   return buf;
> zw>  }
> zw> @@ -8953,7 +8954,8 @@
> zw>           const int cwd_len=2048;
> zw>           char *cwd=malloc(cwd_len);
> zw>          Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
> zw> - getcwd( cwd, cwd_len );
> zw> + cwd = getcwd( cwd, cwd_len );
> zw> + if (NULL == cwd) strcpy(cwd, "unknown");
> 
>     this is bug.
>     when cwd is NULL, strcpy will cause segfault;
> 
>     if (! getcwd( cwd, cwd_len ) ) strcpy(cwd, "unknown");
>     is better;

*gasp* ... *blush* ... Done!

Revised patch attached.

Thanks,

Zach
Index: src/helper/jim.c
===================================================================
--- src/helper/jim.c	(revision 1478)
+++ src/helper/jim.c	(working copy)
@@ -133,7 +133,9 @@
 	buf[sizeof(buf)-1] = 0;
 #else
 	char *buf;
-	vasprintf( &buf, fmt, ap );
+	int result;
+	result = vasprintf( &buf, fmt, ap );
+	if (result < 0) exit(-1);
 #endif
 	return buf;
 }
@@ -8953,7 +8955,7 @@
     	const int cwd_len=2048;
 		char *cwd=malloc(cwd_len);
         Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
-	getcwd( cwd, cwd_len );
+	if (!getcwd( cwd, cwd_len )) strcpy(cwd, "unknown");
         Jim_AppendStrings(interp, Jim_GetResult(interp),
 	"Error loading script \"", filename, "\"",
 	    " cwd: ", cwd,
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to