Skip to content

Commit 68b391e

Browse files
committed
Fixes a libmagic message formatting edge case (#3421)
1 parent 3ac452f commit 68b391e

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

polyfile/magic.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2579,8 +2579,12 @@ def message(self) -> str:
25792579
# sometimes we parsed a negative value and want to print it as an unsigned int:
25802580
result_str = result_str % (result.value + 2**(8 * result.length),)
25812581
elif "%" in result_str.replace("%%", ""):
2582-
result_str = result_str.replace("%lld", "%d")
2583-
result_str = result_str % (result.value,)
2582+
result_str = result_str.replace("%ll", "%")
2583+
result_str = result_str.replace("%#ll", "0x%")
2584+
try:
2585+
result_str = result_str % (result.value,)
2586+
except ValueError as e:
2587+
log.error(f"Error formatting message {result_str!r} with value {result.value!r}: {e!s}")
25842588
result_str = result_str.replace("%%", "%")
25852589
msg = f"{msg}{result_str}"
25862590
return msg

0 commit comments

Comments
 (0)