1
0
mirror of https://github.com/php/php-src.git synced 2026-04-29 11:13:36 +02:00

Merge branch 'PHP-8.2' into PHP-8.3

* PHP-8.2:
  Fix GH-13344: finfo::buffer(): Failed identify data 0:(null)
This commit is contained in:
Niels Dossche
2024-02-13 21:15:37 +01:00
4 changed files with 49 additions and 22 deletions
+4
View File
@@ -9,6 +9,10 @@ PHP NEWS
. Fix unlikely memory leak in case of namespace removal with extremely deep
trees. (nielsdos)
- Fileinfo:
. Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null),
backport). (nielsdos)
- FPM:
. Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER).
(Jakub Zelenka)
+30 -21
View File
@@ -1,6 +1,6 @@
diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
--- libmagic.orig/apprentice.c 2022-09-13 20:46:07.000000000 +0200
+++ libmagic/apprentice.c 2022-10-02 20:39:14.879183555 +0200
+++ libmagic/apprentice.c 2023-10-25 17:56:17.066628832 +0200
@@ -48,7 +48,9 @@
#ifdef QUICK
#include <sys/mman.h>
@@ -864,7 +864,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
break;
diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c
--- libmagic.orig/ascmagic.c 2022-09-13 20:40:30.000000000 +0200
+++ libmagic/ascmagic.c 2022-10-02 15:56:16.390142333 +0200
+++ libmagic/ascmagic.c 2024-02-13 21:14:11.091069093 +0100
@@ -96,7 +96,7 @@
rv = file_ascmagic_with_encoding(ms, &bb,
ubuf, ulen, code, type, text);
@@ -874,7 +874,7 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c
return rv;
}
@@ -143,7 +143,7 @@
@@ -143,13 +143,15 @@
/* malloc size is a conservative overestimate; could be
improved, or at least realloced after conversion. */
mlen = ulen * 6;
@@ -883,7 +883,16 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c
file_oomem(ms, mlen);
goto done;
}
@@ -273,8 +273,8 @@
if ((utf8_end = encode_utf8(utf8_buf, mlen, ubuf, ulen))
- == NULL)
+ == NULL) {
+ rv = 0;
goto done;
+ }
buffer_init(&bb, b->fd, &b->st, utf8_buf,
CAST(size_t, utf8_end - utf8_buf));
@@ -273,8 +275,8 @@
goto done;
if (has_long_lines)
@@ -894,7 +903,7 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c
goto done;
/*
@@ -330,7 +330,8 @@
@@ -330,7 +332,8 @@
}
rv = 1;
done:
@@ -906,7 +915,7 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c
}
diff -u libmagic.orig/buffer.c libmagic/buffer.c
--- libmagic.orig/buffer.c 2022-09-13 20:34:20.000000000 +0200
+++ libmagic/buffer.c 2022-10-02 15:56:16.390142333 +0200
+++ libmagic/buffer.c 2023-10-25 17:56:17.069962152 +0200
@@ -31,19 +31,21 @@
#endif /* lint */
@@ -960,7 +969,7 @@ diff -u libmagic.orig/buffer.c libmagic/buffer.c
}
diff -u libmagic.orig/cdf.c libmagic/cdf.c
--- libmagic.orig/cdf.c 2022-09-13 20:34:25.000000000 +0200
+++ libmagic/cdf.c 2022-10-02 15:56:16.390142333 +0200
+++ libmagic/cdf.c 2023-10-25 17:56:17.069962152 +0200
@@ -43,7 +43,9 @@
#include <err.h>
#endif
@@ -1191,7 +1200,7 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c
#endif
diff -u libmagic.orig/cdf.h libmagic/cdf.h
--- libmagic.orig/cdf.h 2022-09-13 20:34:29.000000000 +0200
+++ libmagic/cdf.h 2022-10-02 15:56:16.390142333 +0200
+++ libmagic/cdf.h 2023-10-25 17:56:17.069962152 +0200
@@ -37,8 +37,6 @@
#ifdef WIN32
@@ -1203,7 +1212,7 @@ diff -u libmagic.orig/cdf.h libmagic/cdf.h
#define timespec timeval
diff -u libmagic.orig/compress.c libmagic/compress.c
--- libmagic.orig/compress.c 2022-09-13 20:34:42.000000000 +0200
+++ libmagic/compress.c 2022-10-02 15:56:16.390142333 +0200
+++ libmagic/compress.c 2023-10-25 17:56:17.069962152 +0200
@@ -63,13 +63,14 @@
#if defined(HAVE_SYS_TIME_H)
#include <sys/time.h>
@@ -1312,7 +1321,7 @@ diff -u libmagic.orig/compress.c libmagic/compress.c
+#endif
diff -u libmagic.orig/der.c libmagic/der.c
--- libmagic.orig/der.c 2022-09-13 20:34:54.000000000 +0200
+++ libmagic/der.c 2022-10-02 15:56:16.390142333 +0200
+++ libmagic/der.c 2023-10-25 17:56:17.069962152 +0200
@@ -54,7 +54,9 @@
#include "magic.h"
#include "der.h"
@@ -1325,7 +1334,7 @@ diff -u libmagic.orig/der.c libmagic/der.c
#endif
diff -u libmagic.orig/elfclass.h libmagic/elfclass.h
--- libmagic.orig/elfclass.h 2022-09-13 20:35:11.000000000 +0200
+++ libmagic/elfclass.h 2022-10-02 03:02:46.697523453 +0200
+++ libmagic/elfclass.h 2023-08-30 22:16:33.784980199 +0200
@@ -41,7 +41,7 @@
return toomany(ms, "program headers", phnum);
flags |= FLAGS_IS_CORE;
@@ -1355,7 +1364,7 @@ diff -u libmagic.orig/elfclass.h libmagic/elfclass.h
CAST(int, elf_getu16(swap, elfhdr.e_shstrndx)),
diff -u libmagic.orig/encoding.c libmagic/encoding.c
--- libmagic.orig/encoding.c 2022-09-13 20:46:07.000000000 +0200
+++ libmagic/encoding.c 2022-10-02 15:56:16.394142341 +0200
+++ libmagic/encoding.c 2023-10-25 17:56:17.069962152 +0200
@@ -97,7 +97,7 @@
nbytes = ms->encoding_max;
@@ -1391,7 +1400,7 @@ diff -u libmagic.orig/encoding.c libmagic/encoding.c
}
diff -u libmagic.orig/file.h libmagic/file.h
--- libmagic.orig/file.h 2022-09-13 20:35:30.000000000 +0200
+++ libmagic/file.h 2022-10-02 15:56:16.394142341 +0200
+++ libmagic/file.h 2023-10-25 17:56:17.069962152 +0200
@@ -33,9 +33,7 @@
#ifndef __file_h__
#define __file_h__
@@ -1570,7 +1579,7 @@ diff -u libmagic.orig/file.h libmagic/file.h
#define QUICK
diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c
--- libmagic.orig/fsmagic.c 2022-09-13 20:36:53.000000000 +0200
+++ libmagic/fsmagic.c 2022-10-02 15:56:16.394142341 +0200
+++ libmagic/fsmagic.c 2023-10-25 17:56:17.069962152 +0200
@@ -66,26 +66,10 @@
# define minor(dev) ((dev) & 0xff)
#endif
@@ -1863,7 +1872,7 @@ diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c
case S_IFSOCK:
diff -u libmagic.orig/funcs.c libmagic/funcs.c
--- libmagic.orig/funcs.c 2022-09-13 20:46:07.000000000 +0200
+++ libmagic/funcs.c 2022-10-02 15:56:16.394142341 +0200
+++ libmagic/funcs.c 2023-10-25 17:56:17.069962152 +0200
@@ -66,7 +66,7 @@
private void
file_clearbuf(struct magic_set *ms)
@@ -2167,7 +2176,7 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c
file_clear_closexec(int fd) {
diff -u libmagic.orig/magic.c libmagic/magic.c
--- libmagic.orig/magic.c 2022-09-13 20:37:57.000000000 +0200
+++ libmagic/magic.c 2022-10-02 15:56:16.394142341 +0200
+++ libmagic/magic.c 2023-10-25 17:56:17.069962152 +0200
@@ -25,11 +25,6 @@
* SUCH DAMAGE.
*/
@@ -2640,8 +2649,8 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
}
return file_getbuffer(ms);
diff -u libmagic.orig/magic.h libmagic/magic.h
--- libmagic.orig/magic.h 2022-10-02 20:59:55.617810794 +0200
+++ libmagic/magic.h 2022-10-02 15:56:16.394142341 +0200
--- libmagic.orig/magic.h 2024-02-13 21:14:59.340250330 +0100
+++ libmagic/magic.h 2023-10-25 17:56:17.069962152 +0200
@@ -126,6 +126,7 @@
const char *magic_getpath(const char *, int);
@@ -2652,7 +2661,7 @@ diff -u libmagic.orig/magic.h libmagic/magic.h
diff -u libmagic.orig/print.c libmagic/print.c
--- libmagic.orig/print.c 2022-09-13 20:38:34.000000000 +0200
+++ libmagic/print.c 2022-10-02 15:56:16.394142341 +0200
+++ libmagic/print.c 2023-10-25 17:56:17.069962152 +0200
@@ -73,7 +73,7 @@
if (m->mask_op & FILE_OPINVERSE)
(void) fputc('~', stderr);
@@ -2709,7 +2718,7 @@ diff -u libmagic.orig/print.c libmagic/print.c
goto out;
diff -u libmagic.orig/readcdf.c libmagic/readcdf.c
--- libmagic.orig/readcdf.c 2022-09-13 20:38:40.000000000 +0200
+++ libmagic/readcdf.c 2022-10-02 15:56:16.394142341 +0200
+++ libmagic/readcdf.c 2023-10-25 17:56:17.069962152 +0200
@@ -31,7 +31,9 @@
#include <assert.h>
@@ -2829,7 +2838,7 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c
if (i != -1)
diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
--- libmagic.orig/softmagic.c 2022-09-13 20:46:07.000000000 +0200
+++ libmagic/softmagic.c 2022-10-02 20:58:58.073503436 +0200
+++ libmagic/softmagic.c 2023-10-25 17:56:17.069962152 +0200
@@ -43,7 +43,7 @@
#include <time.h>
#include "der.h"
+3 -1
View File
@@ -148,8 +148,10 @@ file_ascmagic_with_encoding(struct magic_set *ms, const struct buffer *b,
goto done;
}
if ((utf8_end = encode_utf8(utf8_buf, mlen, ubuf, ulen))
== NULL)
== NULL) {
rv = 0;
goto done;
}
buffer_init(&bb, b->fd, &b->st, utf8_buf,
CAST(size_t, utf8_end - utf8_buf));
+12
View File
@@ -0,0 +1,12 @@
--TEST--
GH-13344 (finfo::buffer(): Failed identify data 0:(null))
--EXTENSIONS--
fileinfo
--FILE--
<?php
$data = pack('H*','fffe000000099999');
$mime_type = (new finfo(FILEINFO_MIME))->buffer($data);
echo $mime_type;
?>
--EXPECT--
application/octet-stream; charset=utf-32le