Quellcode durchsuchen

[Fix] Fix use after free

Issue: #2867
Closes: #2867
tags/1.9.3
Vsevolod Stakhov vor 5 Jahren
Ursprung
Commit
b637de0ad4
1 geänderte Dateien mit 8 neuen und 4 gelöschten Zeilen
  1. 8
    4
      src/libmime/archives.c

+ 8
- 4
src/libmime/archives.c Datei anzeigen

@@ -1173,22 +1173,22 @@ rspamd_7zip_read_coders_info (struct rspamd_task *task,
return NULL;
}

if (folder_nstreams) {
g_free (folder_nstreams);
}

folder_nstreams = g_malloc (sizeof (int) * num_folders);

for (i = 0; i < num_folders && p != NULL && p < end; i++) {
p = rspamd_7zip_read_folder (task, p, end, arch,
&folder_nstreams[i], &num_digests);
}

g_free (folder_nstreams);
}
break;
case kCodersUnPackSize:
for (i = 0; i < num_folders && p != NULL && p < end; i++) {
if (folder_nstreams) {
for (guint j = 0; j < folder_nstreams[i]; j++) {
guint64 tmp;

SZ_READ_VINT (tmp); /* Unpacked size */
msg_debug_archive ("7zip: unpacked size "
"(folder=%d, stream=%d) = %L",
@@ -1237,6 +1237,10 @@ end:
*pnum_folders = num_folders;
}

if (folder_nstreams) {
g_free (folder_nstreams);
}

return p;
}


Laden…
Abbrechen
Speichern