170_php_18368630.patch continued.
This corrects parts of the above patch because of context diffs.
--- php-5.3.28/ext/fileinfo/libmagic/softmagic.c_orig 2013-12-10 11:04:57.000000000 -0800
+++ php-5.3.28/ext/fileinfo/libmagic/softmagic.c 2014-03-10 16:11:12.236393936 -0700
@@ -1500,14 +1500,14 @@
/* Verify we have enough data to match magic type */
switch (m->type) {
case FILE_BYTE:
- if (nbytes < (offset + 1)) /* should alway be true */
+ if (OFFSET_OOB(nbytes, offset, 1)) /* should alway be true */
return 0;
break;
case FILE_SHORT:
case FILE_BESHORT:
case FILE_LESHORT:
- if (nbytes < (offset + 2))
+ if (OFFSET_OOB(nbytes, offset, 2))
return 0;
break;
@@ -1526,26 +1526,26 @@
case FILE_FLOAT:
case FILE_BEFLOAT:
case FILE_LEFLOAT:
- if (nbytes < (offset + 4))
+ if (OFFSET_OOB(nbytes, offset, 4))
return 0;
break;
case FILE_DOUBLE:
case FILE_BEDOUBLE:
case FILE_LEDOUBLE:
- if (nbytes < (offset + 8))
+ if (OFFSET_OOB(nbytes, offset, 8))
return 0;
break;
case FILE_STRING:
case FILE_PSTRING:
case FILE_SEARCH:
- if (nbytes < (offset + m->vallen))
+ if (OFFSET_OOB(nbytes, offset, m->vallen))
return 0;
break;
case FILE_REGEX:
- if (nbytes < offset)
+ if (OFFSET_OOB(nbytes, offset, 0))
return 0;
break;
@@ -1553,7 +1553,7 @@
if ((ms->flags & (MAGIC_MIME|MAGIC_APPLE)) == 0 &&
file_printf(ms, "%s", m->desc) == -1)
return -1;
- if (nbytes < offset)
+ if (OFFSET_OOB(nbytes, offset, 0))
return 0;
return file_softmagic(ms, s + offset, nbytes - offset,
BINTEST, text);