Coverity: UNINIT: CID 601
authorNelson Ferreira <nelson.ferreira@ieee.org>
Wed, 18 Jan 2012 16:37:32 +0000 (11:37 -0500)
committerNelson Ferreira <nelson.ferreira@ieee.org>
Wed, 18 Jan 2012 16:37:32 +0000 (11:37 -0500)
* src/ui/glyphs-eimage.c (jpeg_instantiate): Make sure bytes is
only used if properly transcoded.

Signed-off-by: Nelson Ferreira <nelson.ferreira@ieee.org>
src/ui/glyphs-eimage.c

index 8f60fa0..2704f1d 100644 (file)
@@ -379,7 +379,7 @@ jpeg_instantiate(Lisp_Object image_instance, Lisp_Object instantiator,
 
        {
                Lisp_Object data = find_keyword_in_vector(instantiator, Q_data);
-               const Extbyte *bytes;
+               const Extbyte *bytes = NULL;
                Extcount len;
 
 #ifdef HAVE_FFI
@@ -393,7 +393,13 @@ jpeg_instantiate(Lisp_Object image_instance, Lisp_Object instantiator,
                   write out to a file. */
                TO_EXTERNAL_FORMAT(LISP_STRING, data, ALLOCA, (bytes, len),
                                   Qbinary);
-               jpeg_memory_src(&cinfo, (const JOCTET*)bytes, len);
+               if ( bytes != NULL ) {
+                       jpeg_memory_src(&cinfo, (const JOCTET*)bytes, len);
+               } else {
+                       signal_image_error
+                           ("Unable to transcode image source",
+                            instantiator);
+               }
        }
 
        /* Step 3: read file parameters with jpeg_read_header() */