diff --git a/src/common.h b/src/common.h index 28be0228..69d50229 100644 --- a/src/common.h +++ b/src/common.h @@ -501,7 +501,7 @@ COMMON_INLINE intmax_t add_printf (intmax_t a, intmax_t b) { intmax_t sum; - return (a < 0) | (b < 0) | ckd_add (&sum, a, b) ? -1 : sum; + return ((a < 0) | (b < 0) | ckd_add (&sum, a, b)) ? -1 : sum; } /* Module create.c. */ diff --git a/src/sparse.c b/src/sparse.c index 1e05ab71..3c584d2e 100644 --- a/src/sparse.c +++ b/src/sparse.c @@ -1255,7 +1255,7 @@ decode_num (struct block_ptr bp, uintmax_t nmax, struct tar_sparse_file *file) overflow |= nmax < n; char const *msgid - = (!digit_seen | nondigit_seen ? N_("%s: malformed sparse archive member") + = ((!digit_seen | nondigit_seen) ? N_("%s: malformed sparse archive member") : overflow ? N_("%s: numeric overflow in sparse archive member") : NULL); if (msgid)