Index | Thread | Search

From:
Alexander Bluhm <bluhm@openbsd.org>
Subject:
devel/libmagic fixes
To:
ports@openbsd.org
Date:
Wed, 13 May 2026 00:47:12 +0200

Download raw body.

Thread
  • Alexander Bluhm:

    devel/libmagic fixes

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 <christos@zoulas.com>
+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 <christos@zoulas.com>
+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 <christos@zoulas.com>
+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) {