From: Uwe Hermann Date: Fri, 3 Apr 2015 15:17:49 +0000 (+0200) Subject: add_handle(): Fix a memory leak. X-Git-Tag: libserialport-0.1.1~72 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=948f63f0fd0530c8653aa801f7e3d8a2cf2b12b2;p=libserialport.git add_handle(): Fix a memory leak. This fixes the following scan-build warning: serialport.c:1170:3: warning: Potential leak of memory pointed to by 'new_handles' RETURN_ERROR(SP_ERR_MEM, "Mask array realloc() failed"); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --- diff --git a/serialport.c b/serialport.c index b8ddffe..1ace0ae 100644 --- a/serialport.c +++ b/serialport.c @@ -1166,8 +1166,10 @@ static enum sp_return add_handle(struct sp_event_set *event_set, RETURN_ERROR(SP_ERR_MEM, "Handle array realloc() failed"); if (!(new_masks = realloc(event_set->masks, - sizeof(enum sp_event) * (event_set->count + 1)))) + sizeof(enum sp_event) * (event_set->count + 1)))) { + free(new_handles); RETURN_ERROR(SP_ERR_MEM, "Mask array realloc() failed"); + } event_set->handles = new_handles; event_set->masks = new_masks;