Unverified Commit 8122eb0f by Evgeny Vereshchagin Committed by Christian Brauner

confile_utils: fix a signed integer overflow

This was triggered by the following chain of conversions: lxc_safe_uint("020000000020") -> 2147483664 (uint) sig_num(2147483664 (uint)) -> -2147483632 (int) 64 - -2147483632 cannot be represented in type 'int' Closes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32596Signed-off-by: 's avatarEvgeny Vereshchagin <evvers@ya.ru>
parent 285dd691
...@@ -1047,14 +1047,14 @@ static int rt_sig_num(const char *signame) ...@@ -1047,14 +1047,14 @@ static int rt_sig_num(const char *signame)
return ret_errno(EINVAL); return ret_errno(EINVAL);
sig_n = sig_num(signame); sig_n = sig_num(signame);
if (sig_n < 0 || sig_n > SIGRTMAX - SIGRTMIN)
return ret_errno(EINVAL);
if (rtmax) if (rtmax)
sig_n = SIGRTMAX - sig_n; sig_n = SIGRTMAX - sig_n;
else else
sig_n = SIGRTMIN + sig_n; sig_n = SIGRTMIN + sig_n;
if (sig_n > SIGRTMAX || sig_n < SIGRTMIN)
return ret_errno(EINVAL);
return sig_n; return sig_n;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment