diff options
author | Marcus Meissner <marcus@jet.franken.de> | 2020-01-25 18:29:37 +0100 |
---|---|---|
committer | Marcus Meissner <marcus@jet.franken.de> | 2020-01-25 18:29:48 +0100 |
commit | ec549ee2367befc478a700ff5bba3b64d896168a (patch) | |
tree | 5e011423d93adc3e5d83df9dfb5a5d4476a39158 | |
parent | 8cfca5b2dd791d0b08fdf8a8dfb1a4369277575e (diff) | |
download | libgphoto2-ec549ee2367befc478a700ff5bba3b64d896168a.tar.gz |
avoid double free of camera->pl (ASAN)
-rw-r--r-- | camlibs/sonix/library.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/camlibs/sonix/library.c b/camlibs/sonix/library.c index 2d7546cd2..444eb6a0a 100644 --- a/camlibs/sonix/library.c +++ b/camlibs/sonix/library.c @@ -114,6 +114,7 @@ camera_summary (Camera *camera, CameraText *summary, GPContext *context) ret = sonix_init(camera->port, camera->pl); if ( ret != GP_OK) { free(camera->pl); + camera->pl = NULL; return ret; } if (!camera->pl->num_pics) @@ -168,6 +169,7 @@ file_list_func (CameraFilesystem *fs, const char *folder, CameraList *list, ret = sonix_init(camera->port, camera->pl); if ( ret != GP_OK) { free(camera->pl); + camera->pl = NULL; return ret; } if(!camera->pl->num_pics) { @@ -211,6 +213,7 @@ get_file_func (CameraFilesystem *fs, const char *folder, const char *filename, ret = sonix_init(camera->port, camera->pl); if ( ret != GP_OK) { free(camera->pl); + camera->pl = NULL; return ret; } if(!camera->pl->num_pics) { @@ -463,6 +466,7 @@ delete_all_func (CameraFilesystem *fs, const char *folder, void *data, ret = sonix_init(camera->port, camera->pl); if ( ret != GP_OK) { free(camera->pl); + camera->pl = NULL; return ret; } sonix_delete_all_pics (camera->port); @@ -480,6 +484,7 @@ delete_file_func (CameraFilesystem *fs, const char *folder, ret = sonix_init(camera->port, camera->pl); if ( ret != GP_OK) { free(camera->pl); + camera->pl = NULL; return ret; } if (camera->pl->fwversion[1] == 0x0a) @@ -505,6 +510,7 @@ camera_capture (Camera *camera, CameraCaptureType type, CameraFilePath *path, ret = sonix_init(camera->port, camera->pl); if ( ret != GP_OK) { free(camera->pl); + camera->pl = NULL; return ret; } if (!(camera->pl->can_do_capture)) { |