Browse Source

phar module, unsignedness check changes.

while at it, correcting seemingly subtle bug when checking
extension validity.
pull/3309/head
David Carlier 8 years ago
parent
commit
80bb649ad1
  1. 6
      ext/phar/phar.c
  2. 7
      ext/phar/phar_object.c

6
ext/phar/phar.c

@ -1853,14 +1853,14 @@ static int phar_check_str(const char *fname, const char *ext_str, size_t ext_len
char test[51];
const char *pos;
if (ext_len < 0 || ext_len >= 50) {
if (ext_len >= 50) {
return FAILURE;
}
if (executable == 1) {
/* copy "." as well */
memcpy(test, ext_str - 1, ext_len + 1);
test[ext_len + 1] = '\0';
strlcpy(test, ext_str, ext_len + 1);
/* executable phars must contain ".phar" as a valid extension (phar://.pharmy/oops is invalid) */
/* (phar://hi/there/.phar/oops is also invalid) */
pos = strstr(test, ".phar");

7
ext/phar/phar_object.c

@ -389,13 +389,6 @@ static void phar_postprocess_ru_web(char *fname, size_t fname_len, char **entry,
u[0] = '\0';
u_len = strlen(u + 1);
e_len -= u_len + 1;
if (e_len < 0) {
if (saveu) {
saveu[0] = '/';
}
return;
}
} while (1);
}
/* }}} */

Loading…
Cancel
Save