]> granicus.if.org Git - php/commitdiff
Fix memcpy null UB in phar
authorNikita Popov <nikita.ppv@gmail.com>
Wed, 19 Jun 2019 12:38:29 +0000 (14:38 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 19 Jun 2019 13:09:00 +0000 (15:09 +0200)
ext/phar/phar_internal.h

index cd298e6bbf4f5f6415cdd38ff8dc45549890b590..0ab7fb9156e5c38453ba46e3bc321c798722e1d0 100644 (file)
@@ -511,8 +511,10 @@ static inline void phar_set_inode(phar_entry_info *entry) /* {{{ */
 
        tmp_len = MIN(MAXPATHLEN, entry->filename_len + entry->phar->fname_len);
 
-       len1 = MIN(entry->phar->fname_len, tmp_len);
-       memcpy(tmp, entry->phar->fname, len1);
+       if (entry->phar->fname) {
+               len1 = MIN(entry->phar->fname_len, tmp_len);
+               memcpy(tmp, entry->phar->fname, len1);
+       }
 
        len2 = MIN(tmp_len - len1, entry->filename_len);
        memcpy(tmp + len1, entry->filename, len2);