androiddump: check return value of localtime() before dereference (CID 1400829).
Change-Id: I03c851e56f5bd967a35c668bcbc4e98170251b2c Reviewed-on: https://code.wireshark.org/review/22750 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
parent
9ea364c389
commit
3e9b256238
|
@ -2091,7 +2091,7 @@ static int capture_android_logcat_text(char *interface, char *fifo,
|
|||
|
||||
while (used_buffer_length > 0 && (pos = (char *) memchr(packet + exported_pdu_headers_size, '\n', used_buffer_length))) {
|
||||
int ms;
|
||||
struct tm date;
|
||||
struct tm* date;
|
||||
time_t seconds;
|
||||
time_t secs = 0;
|
||||
int nsecs = 0;
|
||||
|
@ -2100,11 +2100,13 @@ static int capture_android_logcat_text(char *interface, char *fifo,
|
|||
length = (gssize)(pos - packet) + 1;
|
||||
|
||||
t = time(NULL);
|
||||
date = *localtime(&t);
|
||||
if (6 == sscanf(packet + exported_pdu_headers_size, "%d-%d %d:%d:%d.%d", &date.tm_mon, &date.tm_mday, &date.tm_hour,
|
||||
&date.tm_min, &date.tm_sec, &ms)) {
|
||||
date.tm_mon -= 1;
|
||||
seconds = mktime(&date);
|
||||
date = localtime(&t);
|
||||
if (!date)
|
||||
continue;
|
||||
if (6 == sscanf(packet + exported_pdu_headers_size, "%d-%d %d:%d:%d.%d", &date->tm_mon, &date->tm_mday, &date->tm_hour,
|
||||
&date->tm_min, &date->tm_sec, &ms)) {
|
||||
date->tm_mon -= 1;
|
||||
seconds = mktime(date);
|
||||
secs = (time_t) seconds;
|
||||
nsecs = (int) (ms * 1e6);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue