Fixed a potential NULL pointer dereference in exif_loader_get_buf.
authorDan Fandrich <dan@coneharvesters.com>
Mon, 4 Feb 2019 15:27:17 +0000 (16:27 +0100)
committerDan Fandrich <dan@coneharvesters.com>
Mon, 4 Feb 2019 15:28:00 +0000 (16:28 +0100)
This would only happen if given a NULL pointer by the application.
Found by Clang scan-build.

libexif/exif-loader.c

index 317b86b..e2208b4 100644 (file)
@@ -410,9 +410,12 @@ exif_loader_get_buf (ExifLoader *loader, const unsigned char **buf,
        const unsigned char* b = NULL;
        unsigned int s = 0;
 
-       if (!loader || (loader->data_format == EL_DATA_FORMAT_UNKNOWN)) {
+       if (!loader)
+               return;
+       if (loader->data_format == EL_DATA_FORMAT_UNKNOWN) {
                exif_log (loader->log, EXIF_LOG_CODE_DEBUG, "ExifLoader",
                          "Loader format unknown");
+               return;
        } else {
                b = loader->buf;
                s = loader->bytes_read;