src/solaris/native/java/lang/UNIXProcess_md.c
Print this page
@@ -247,19 +247,25 @@
char **pathv;
int i;
int count = countOccurrences(path, ':') + 1;
pathv = NEW(char*, count+1);
+ if(pathv == NULL)
+ return NULL;
+
pathv[count] = NULL;
for (p = path, i = 0; i < count; i++, p = q + 1) {
for (q = p; (*q != ':') && (*q != '\0'); q++)
;
if (q == p) /* empty PATH component => "." */
pathv[i] = "./";
else {
int addSlash = ((*(q - 1)) != '/');
pathv[i] = NEW(char, q - p + addSlash + 1);
+ if(pathv[i] == NULL)
+ return NULL;
+
memcpy(pathv[i], p, q - p);
if (addSlash)
pathv[i][q - p] = '/';
pathv[i][q - p + addSlash] = '\0';
}
@@ -484,10 +490,13 @@
if (strcmp(s, "Unknown error") != 0)
detail = s;
}
/* ASCII Decimal representation uses 2.4 times as many bits as binary. */
errmsg = NEW(char, strlen(format) + strlen(detail) + 3 * sizeof(errnum));
+ if(errmsg == NULL)
+ return;
+
sprintf(errmsg, format, errnum, detail);
s = JNU_NewStringPlatform(env, errmsg);
if (s != NULL) {
jobject x = JNU_NewObjectByName(env, "java/io/IOException",
"(Ljava/lang/String;)V", s);