]> granicus.if.org Git - graphviz/commitdiff
webp_really_loadimage: correct type for 'data_size'
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Thu, 31 Mar 2022 03:36:40 +0000 (20:36 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 2 Apr 2022 00:07:11 +0000 (17:07 -0700)
Squashes a -Wconversion warning.

plugin/webp/gvloadimage_webp.c

index 58a29bd3001bfbb2705c8f75fbb2f0049a523a97..207f0a9b409659928ff0a3b9fd6843c747a0a1d8 100644 (file)
@@ -55,7 +55,6 @@ static cairo_surface_t* webp_really_loadimage(const char *in_file, FILE* const i
     VP8StatusCode status = VP8_STATUS_OK;
     cairo_surface_t *surface = NULL; /* source surface */
     int ok;
-    uint32_t data_size = 0;
     void* data = NULL;
 
     if (!WebPInitDecoderConfig(&config)) {
@@ -64,12 +63,17 @@ static cairo_surface_t* webp_really_loadimage(const char *in_file, FILE* const i
     }
 
     fseek(in, 0, SEEK_END);
-    data_size = ftell(in);
+    long size = ftell(in);
+    if (size < 0) {
+       fprintf(stderr, "Error: WebP could not determine %s size\n", in_file);
+       return NULL;
+    }
+    size_t data_size = (size_t)size;
     fseek(in, 0, SEEK_SET);
     data = malloc(data_size);
     ok = (fread(data, data_size, 1, in) == 1);
     if (!ok) {
-        fprintf(stderr, "Error: WebP could not read %d bytes of data from %s\n",
+        fprintf(stderr, "Error: WebP could not read %zu bytes of data from %s\n",
             data_size, in_file);
         free(data);
         return NULL;