When allocating the frame table for a NetMon file, use g_try_malloc(),
[metze/wireshark/wip.git] / wiretap / netmon.c
index aa97cf61958e1a2a744c7f19d56db9834974fb7e..9f5d1b55783b63931c6786ee5bebcef3457cd012 100644 (file)
@@ -359,7 +359,11 @@ int netmon_open(wtap *wth, int *err, gchar **err_info)
        if (file_seek(wth->fh, frame_table_offset, SEEK_SET, err) == -1) {
                return -1;
        }
-       frame_table = (guint32 *)g_malloc(frame_table_length);
+       frame_table = (guint32 *)g_try_malloc(frame_table_length);
+       if (frame_table_length != 0 && frame_table == NULL) {
+               *err = ENOMEM;  /* we assume we're out of memory */
+               return -1;
+       }
        errno = WTAP_ERR_CANT_READ;
        bytes_read = file_read(frame_table, frame_table_length, wth->fh);
        if ((guint32)bytes_read != frame_table_length) {