]> sigrok.org Git - libserialport.git/blobdiff - serialport.c
add_handle(): Fix a realloc() related issue.
[libserialport.git] / serialport.c
index b8ddffe870e1e1fa4c2269471d78a6cbfb185195..5183a85068d431996f970d9f714540b7c0ee9288 100644 (file)
@@ -1165,11 +1165,12 @@ static enum sp_return add_handle(struct sp_event_set *event_set,
                        sizeof(event_handle) * (event_set->count + 1))))
                RETURN_ERROR(SP_ERR_MEM, "Handle array realloc() failed");
 
+       event_set->handles = new_handles;
+
        if (!(new_masks = realloc(event_set->masks,
                        sizeof(enum sp_event) * (event_set->count + 1))))
                RETURN_ERROR(SP_ERR_MEM, "Mask array realloc() failed");
 
-       event_set->handles = new_handles;
        event_set->masks = new_masks;
 
        ((event_handle *) event_set->handles)[event_set->count] = handle;