summaryrefslogtreecommitdiff
path: root/pngread.c
diff options
context:
space:
mode:
Diffstat (limited to 'pngread.c')
-rw-r--r--pngread.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/pngread.c b/pngread.c
index 2197ff178..9ade1b318 100644
--- a/pngread.c
+++ b/pngread.c
@@ -100,16 +100,22 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
png_set_error_fn(png_ptr, error_ptr, error_fn, warn_fn);
- if (user_png_ver)
+ if (user_png_ver != NULL)
{
- i = 0;
+ int found_dots = 0;
+ i = -1;
+
do
{
- if (user_png_ver[i] != png_libpng_ver[i])
+ i++;
+ if (user_png_ver[i] != PNG_LIBPNG_VER_STRING[i])
png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
- } while (png_libpng_ver[i++]);
- }
- else
+ if (user_png_ver[i] == '.')
+ found_dots++;
+ } while (found_dots < 2 && user_png_ver[i] != 0 &&
+ PNG_LIBPNG_VER_STRING[i] != 0);
+ }
+ else
png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;