• Max Kellermann's avatar
    protocol/ArgParser: fix integer overflow in parse_range() · 421c4ae9
    Max Kellermann authored
    Casting std::numeric_limits<unsigned>::max() to "long" leads to an
    overflow if sizeof(unsigned)==sizeof(long), and the result will be -1.
    
    This happens on some 32 bit architectures, for example ARM and WIN32.
    
    Workaround: use std::numeric_limits<int>::max(), which is the largest
    signed integer.  Since sizeof(long)>=sizeof(int), this will never
    overflow.
    
    Fixes Mantis ticket 0004080.
    421c4ae9
ArgParser.cxx 4.14 KB