cairo-util: Only look at first two bytes for jpegs
authorKristian Høgsberg <krh@bitplanet.net>
Wed, 8 Feb 2012 15:11:42 +0000 (10:11 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 8 Feb 2012 15:11:42 +0000 (10:11 -0500)
The next two bytes aren't fixed.

clients/cairo-util.c

index bdad696..2f780a7 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright © 2008 Kristian Høgsberg
+ * Copyright © 2012 Intel Corporation
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -518,7 +519,7 @@ load_image(const char *filename)
 {
        cairo_surface_t *surface;
        static const unsigned char png_header[] = { 0x89, 'P', 'N', 'G' };
-       static const unsigned char jpeg_header[] = { 0xff, 0xd8, 0xff, 0xe0 };
+       static const unsigned char jpeg_header[] = { 0xff, 0xd8 };
        unsigned char header[4];
        FILE *fp;
 
@@ -528,9 +529,9 @@ load_image(const char *filename)
 
        fread(header, sizeof header, 1, fp);
        rewind(fp);
-       if (memcmp(header, png_header, sizeof header) == 0)
+       if (memcmp(header, png_header, sizeof png_header) == 0)
                surface = load_png(fp);
-       else if (memcmp(header, jpeg_header, sizeof header) == 0)
+       else if (memcmp(header, jpeg_header, sizeof jpeg_header) == 0)
                surface = load_jpeg(fp);
        else {
                fprintf(stderr, "unrecognized file header for %s: "