backport https://github.com/audacious-media-player/audacious/commit/6ffe0b6.patch https://bugs.gentoo.org/972499 audcore: Prevent undefined behavior for integer conversions. --- a/src/libaudcore/audstrings.cc +++ b/src/libaudcore/audstrings.cc @@ -1121,8 +1121,10 @@ EXPORT double str_to_double(const char * string) EXPORT void str_insert_int(StringBuf & string, int pos, int val) { + unsigned absval = val; bool neg = (val < 0); - unsigned absval = neg ? -val : val; + if (neg) + absval = -absval; int digits = digits_for(absval); int len = (neg ? 1 : 0) + digits;