From: Alexander Bluhm Subject: devel/libmagic fixes To: ports@openbsd.org Date: Wed, 13 May 2026 00:47:12 +0200 Hi, I have noticed that tests of misc/p5-File-LibMagic were failing since devel/libmagic has been updated. Version 5.47 introduced a bug that was fixed later. I would like to backport the fixes. With that p5-File-LibMagic tests pass. ok? bluhm Index: devel/libmagic/Makefile =================================================================== RCS file: /data/mirror/openbsd/cvs/ports/devel/libmagic/Makefile,v diff -u -p -r1.55 Makefile --- devel/libmagic/Makefile 2 Mar 2026 16:22:52 -0000 1.55 +++ devel/libmagic/Makefile 12 May 2026 22:30:46 -0000 @@ -3,6 +3,7 @@ COMMENT= library to determine file type V= 5.47 DISTNAME= file-${V} PKGNAME= libmagic-${V} +REVISION= 0 SHARED_LIBS += magic 5.1 # 1.0 Index: devel/libmagic/patches/patch-src_softmagic_c =================================================================== RCS file: devel/libmagic/patches/patch-src_softmagic_c diff -N devel/libmagic/patches/patch-src_softmagic_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ devel/libmagic/patches/patch-src_softmagic_c 12 May 2026 22:38:01 -0000 @@ -0,0 +1,48 @@ +https://github.com/file/file + +Bug introduced in 5.47 + +commit 08ab5f644bf9822c64faf5efa4e393b58d7bcd0e +Author: Christos Zoulas +Date: Wed May 28 19:22:22 2025 +0000 + + PR/622: Odd_Bloke: Handle negative offsets in file_buffer(), when fd is not + available. + +Backport two bug fixes from master. + +commit b75b4ac5861ee2207b8bf186e1967602a08fda40 +Author: Christos Zoulas +Date: Sat May 9 22:14:09 2026 +0000 + + Add missing check to prevent subtraction underflow. + (evilrabbit @ tutamail dot com) + +commit c54605718190ad8fe9c25cb475f1f32ca7cd54f7 +Author: Christos Zoulas +Date: Sun Apr 12 22:15:14 2026 +0000 + + PR/725: inliniac: Revert previous and always set offset. + +Index: src/softmagic.c +--- src/softmagic.c.orig ++++ src/softmagic.c +@@ -1562,6 +1562,8 @@ msetoffset(struct magic_set *ms, struct magic *m, stru + return -1; + } + if (b->fd == -1) { ++ if (CAST(size_t, m->offset) > b->flen) ++ return -1; + ms->eoffset = ms->offset = + CAST(int32_t, b->flen - m->offset); + } else { +@@ -1580,8 +1582,7 @@ normal: + ms->offset = offset; + ms->eoffset = 0; + } else { +- if (b->fd != -1) +- ms->offset = ms->eoffset + offset; ++ ms->offset = ms->eoffset + offset; + } + } + if ((ms->flags & MAGIC_DEBUG) != 0) {