From e64da8c20df3ec28bd2417924b207b870e9ab99f Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Sat, 20 Sep 2014 16:32:31 -0700 Subject: [PATCH] Fixed bug #66242 (don't assume char is signed) This fixes a bug in libmagic where a cast to 'char' is assumed to result in sign extension to occur. However, unqualified 'char' is unsigned on architectures such as ARM, so the cast needs to be to 'signed char' explicitly. Signed-off-by: Ard Biesheuvel --- ext/fileinfo/libmagic/apprentice.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/fileinfo/libmagic/apprentice.c b/ext/fileinfo/libmagic/apprentice.c index fd82564bff..b137405da2 100644 --- a/ext/fileinfo/libmagic/apprentice.c +++ b/ext/fileinfo/libmagic/apprentice.c @@ -1269,7 +1269,7 @@ file_signextend(struct magic_set *ms, struct magic *m, uint64_t v) * the sign extension must have happened. */ case FILE_BYTE: - v = (char) v; + v = (signed char) v; break; case FILE_SHORT: case FILE_BESHORT: -- 2.40.0