]> git.tdb.fi Git - libs/gui.git/commitdiff
Fix image signature comparisons
authorMikko Rasa <tdb@tdb.fi>
Thu, 5 Jul 2018 14:27:23 +0000 (17:27 +0300)
committerMikko Rasa <tdb@tdb.fi>
Thu, 5 Jul 2018 14:30:09 +0000 (17:30 +0300)
The standard states that if a length is not given, the character array
must be nul-terminated.

source/graphics/bmploader.cpp
source/graphics/jpeg/jpegloader.cpp

index 71de507d1f8b2681a76ddf3bf861a8677a4990e8..086648bfe7b3eb26bb4f079ad95281a1b151fc9d 100644 (file)
@@ -41,7 +41,7 @@ bool BmpLoader::detect(const std::string &sig)
        static const char bmp_sig[] = "BM";
        if(sig.size()<sizeof(bmp_sig))
                return false;
-       return !sig.compare(0, 2, bmp_sig);
+       return !sig.compare(0, sizeof(bmp_sig), bmp_sig, sizeof(bmp_sig));
 }
 
 void BmpLoader::load(Image::Data &data)
index b5801568712ed47f78f1ede3230ce351b1ea0c17..bc0f2df60ef50c6967dcde7e56f43d8f4fafce61 100644 (file)
@@ -116,7 +116,7 @@ bool JpegLoader::detect(const string &sig)
        static const char jpeg_sig[] = { '\xFF', '\xD8', '\xFF' };
        if(sig.size()<sizeof(jpeg_sig))
                return false;
-       return !sig.compare(0, sizeof(jpeg_sig), jpeg_sig);
+       return !sig.compare(0, sizeof(jpeg_sig), jpeg_sig, sizeof(jpeg_sig));
 }
 
 void JpegLoader::load(Image::Data &data)