Fix null dereferences 47/249147/2
authorMichal Bloch <m.bloch@samsung.com>
Mon, 7 Dec 2020 21:16:07 +0000 (22:16 +0100)
committerMichal Bloch <m.bloch@samsung.com>
Mon, 7 Dec 2020 21:28:08 +0000 (22:28 +0100)
Change-Id: Id23b9aaad60752f797783f9ccc6f9bbfa9357941
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
src/crash-stack/proc.c

index 46f40e1ef00f573b62d7f8497cd10d3f4a98955f..8946c213d49e1967cdbee95103721b5f26e0e71d 100644 (file)
@@ -294,6 +294,8 @@ char *get_thread_states(const int *tids, int n)
 {
     int i;
     char *res = calloc(1, n);
+    if (!res)
+        return NULL;
 
     for (i = 0; i < n; ++i) {
         int state = proc_state(tids[i]);
@@ -383,6 +385,9 @@ static int copy_memory_process_vm_readv(int pid,
     remote_iov = malloc(sizeof(struct iovec)*n_frames);
     frame_bytes = malloc(sizeof(ssize_t)*n_frames);
 
+    if (!local_iov || !remote_iov || !frame_bytes)
+        goto process_vm_readv_end;
+
     for (i = 0; i < n_frames; ++i) {
         local_iov[i].iov_base = frames[i]->data;
         local_iov[i].iov_len = frames[i]->length;