Page MenuHomeFreeBSD

D6051.diff
No OneTemporary

D6051.diff

Index: lib/libkvm/kvm_proc.c
===================================================================
--- lib/libkvm/kvm_proc.c
+++ lib/libkvm/kvm_proc.c
@@ -666,6 +666,7 @@
static char *buf, *p;
static char **bufp;
static int argc;
+ char **nbufp;
if (!ISALIVE(kd)) {
_kvm_err(kd, kd->program,
@@ -681,9 +682,15 @@
_kvm_err(kd, kd->program, "cannot allocate memory");
return (NULL);
}
- buflen = nchr;
argc = 32;
bufp = malloc(sizeof(char *) * argc);
+ if (bufp == NULL) {
+ free(buf);
+ buf = NULL;
+ _kvm_err(kd, kd->program, "cannot allocate memory");
+ return (NULL);
+ }
+ buflen = nchr;
} else if (nchr > buflen) {
p = realloc(buf, nchr);
if (p != NULL) {
@@ -716,8 +723,10 @@
p += strlen(p) + 1;
if (i >= argc) {
argc += argc;
- bufp = realloc(bufp,
- sizeof(char *) * argc);
+ nbufp = realloc(bufp, sizeof(char *) * argc);
+ if (nbufp == NULL)
+ return (NULL);
+ bufp = nbufp;
}
} while (p < buf + bufsz);
bufp[i++] = 0;

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 13, 8:28 AM (19 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17132515
Default Alt Text
D6051.diff (1009 B)

Event Timeline