summaryrefslogtreecommitdiff
path: root/camlibs/sq905
diff options
context:
space:
mode:
authorMarcus Meissner <marcus@jet.franken.de>2014-01-06 13:24:38 +0000
committerMarcus Meissner <marcus@jet.franken.de>2014-01-06 13:24:38 +0000
commit4dac5f71af6c1da86ef2a7107f8f7de529b62fe8 (patch)
tree30be68df19600313bdda0346216646492bb7b621 /camlibs/sq905
parenta6405cbcfe681d909c10e7222bd3d5d943a91921 (diff)
downloadlibgphoto2-4dac5f71af6c1da86ef2a7107f8f7de529b62fe8.tar.gz
free rawdata in one exit paht (Coverity)
avoid freeing a pointer into the frame_data git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@14662 67ed7778-7388-44ab-90cf-0a291f65f57c
Diffstat (limited to 'camlibs/sq905')
-rw-r--r--camlibs/sq905/library.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/camlibs/sq905/library.c b/camlibs/sq905/library.c
index d82fbcd7f..feb7bc438 100644
--- a/camlibs/sq905/library.c
+++ b/camlibs/sq905/library.c
@@ -384,7 +384,10 @@ get_file_func (CameraFilesystem *fs, const char *folder, const char *filename,
GP_DEBUG ("size = %i\n", size);
if (comp_ratio>1) {
rawdata = malloc (w*h);
- if (!rawdata) return GP_ERROR_NO_MEMORY;
+ if (!rawdata) {
+ free (ppm);
+ return GP_ERROR_NO_MEMORY;
+ }
sq_decompress (camera->pl->model, rawdata,
frame_data, w, h);
gp_gamma_fill_table (gtable, .65);
@@ -397,7 +400,7 @@ get_file_func (CameraFilesystem *fs, const char *folder, const char *filename,
gp_file_set_mime_type (file, GP_MIME_PPM);
gp_file_set_data_and_size (file, (char *)ppm, size);
- free (rawdata);
+ if (rawdata != frame_data) free (rawdata);
} else { /* type is GP_FILE_TYPE_RAW */
size = w*h/comp_ratio;