Done in upcoming opensm 3.3.13 commit (Thursday). Thanks,
Stan. >-----Original Message----- >From: Hal Rosenstock [mailto:[email protected]] >Sent: Wednesday, April 11, 2012 7:34 AM >To: Smith, Stan >Cc: [email protected] >Subject: [PATCH][REPOST] opensm/libvendor/winosm_common.c: Better failure >handling in strdup_expand and Fopen > > >Return NULL when (underlying) malloc fails > >Signed-off-by: Hal Rosenstock <[email protected]> >--- >Index: libvendor/winosm_common.c >=================================================================== >--- libvendor/winosm_common.c (revision 3395) >+++ libvendor/winosm_common.c (working copy) >@@ -52,9 +52,12 @@ > char *fname; > > fname = strdup_expand(filename); >- pFile = fopen(fname,mode); >- free(fname); >- return pFile; >+ if (fname) { >+ pFile = fopen(fname,mode); >+ free(fname); >+ return pFile; >+ } >+ return NULL; > } > > #define OSM_MAX_LOG_NAME_SIZE 512 >@@ -177,7 +180,7 @@ > > > /* >- * Like _strdup() with Environment varible expansion. >+ * Like _strdup() with Environment variable expansion. > * Example: str '%windir%\temp\osm.log' --> 'C:\windows\temp\osm.log' > * Multiple Env vars are supported. > */ >@@ -188,6 +191,8 @@ > char p_env[80]; > > str = _strdup(base); >+ if (!str) >+ return str; > > while( (s = strchr(str,'%')) ) > { >@@ -203,10 +208,12 @@ > return str; > > xs = (char*)malloc(strlen(str)+strlen(es)); >- for(rc=str,n=xs; rc < (s-1);rc++) *n++ = *rc; >- *n='\0'; >- strcat(n,es); >- strcat(n,(p+1)); >+ if (xs) { >+ for(rc=str,n=xs; rc < (s-1);rc++) *n++ = *rc; >+ *n='\0'; >+ strcat(n,es); >+ strcat(n,(p+1)); >+ } > free(str); > str = xs; > } _______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
