Fix a potential NULL pointer dereference.

This commit is contained in:
Jef Driesen 2013-04-23 17:12:59 +02:00
parent f46e650a63
commit 20f813d5bc

View File

@ -335,7 +335,7 @@ cressi_leonardo_extract_dives (dc_device_t *abstract, const unsigned char data[]
if (header < RB_PROFILE_BEGIN || header + 2 > RB_PROFILE_END || if (header < RB_PROFILE_BEGIN || header + 2 > RB_PROFILE_END ||
footer < RB_PROFILE_BEGIN || footer + 2 > RB_PROFILE_END) footer < RB_PROFILE_BEGIN || footer + 2 > RB_PROFILE_END)
{ {
ERROR (abstract->context, "Invalid ringbuffer pointer detected."); ERROR (context, "Invalid ringbuffer pointer detected.");
free (buffer); free (buffer);
return DC_STATUS_DATAFORMAT; return DC_STATUS_DATAFORMAT;
} }
@ -344,7 +344,7 @@ cressi_leonardo_extract_dives (dc_device_t *abstract, const unsigned char data[]
unsigned int header2 = array_uint16_le (data + footer); unsigned int header2 = array_uint16_le (data + footer);
unsigned int footer2 = array_uint16_le (data + header); unsigned int footer2 = array_uint16_le (data + header);
if (header2 != header || footer2 != footer) { if (header2 != header || footer2 != footer) {
ERROR (abstract->context, "Invalid ringbuffer pointer detected."); ERROR (context, "Invalid ringbuffer pointer detected.");
free (buffer); free (buffer);
return DC_STATUS_DATAFORMAT; return DC_STATUS_DATAFORMAT;
} }