Dear Mr. Jeff, Thanks for the comments.
Yes i think overflow check logic is wrong. So i think we can change the overflow logic - >From -- if ((long long)tmp < 0) + return -ERANGE; to - if (((long long)tmp < LLONG_MIN) || ((long long)tmp > LLONG_MAX) ) + return -ERANGE; Please give your views on this change.. If this change seems correct i will update overflow logic in my sent patch. Hope to hear from you soon. Thanks Anshul Garg On Thu, Jan 22, 2015 at 10:55 PM, Jeff Epler <[email protected]> wrote: > On Thu, Jan 22, 2015 at 05:54:10AM -0800, Anshul Garg wrote: >> - if ((long long)(-tmp) >= 0) >> - return -ERANGE; >> - *res = -tmp; > ... >> + if ((long long)tmp < 0) >> + return -ERANGE; >> + *res = sign * tmp; > > I don't believe overflow handling is correct anymore with this patch. > Did you try with the input as the most negative possible unsigned long? > > Jeff -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

