diff --git a/lib/libarchive/archive_read_support_format_cpio.c b/lib/libarchive/archive_read_support_format_cpio.c index 50347643091..5cb5fe6bbb4 100644 --- a/lib/libarchive/archive_read_support_format_cpio.c +++ b/lib/libarchive/archive_read_support_format_cpio.c @@ -321,10 +321,12 @@ static int is_hex(const char *p, size_t len) { while (len-- > 0) { - if (*p < '0' || (*p > '9' && *p < 'a') || *p > 'f') { + if ((*p >= '0' && *p <= '9') + || (*p >= 'a' && *p <= 'f') + || (*p >= 'A' && *p <= 'F')) + ++p; + else return (0); - } - ++p; } return (1); }