mea culpa, missread the code re, wh
Am 27.11.2013 16:57, schrieb Daniel Borca: > Walter, > > First, there's no memcopy [sic] in that code. > > Second, memcmp returns an int. > > Third, even if there was a memcopy [sic] returning a pointer, > you failed to notice the ! aka logical not. Now, the result > of !p (where p is a pointer) will not be a pointer. > > http://c-faq.com/null/ptrtest.html and http://c-faq.com/bool/bool2.html > > That is, !p will always be either 0 or 1, and. nothing. else. > At least on any C compiler that's even slightly relevant. > > walter harms wrote: >> >> >> Am 27.11.2013 15:21, schrieb Denys Vlasenko: >>> On Wed, Nov 27, 2013 at 2:46 AM, Rich Felker<[email protected]> wrote: >>>> On Tue, Nov 26, 2013 at 10:01:36PM +0200, Daniel Borca wrote: >>>>> +#ifndef HAVE_SIGISEMPTYSET >>>>> +int sigisemptyset(sigset_t *set) >>>>> +{ >>>>> + sigset_t empty; >>>>> + int ret = sigemptyset(&empty); >>>>> + if (ret == 0) { >>>>> + ret = !memcmp(&empty, set, sizeof(sigset_t)); >>>>> + } >>>>> + return ret; >>>>> +} >>>>> +#endif >>>> >>>> This is not a suitable fallback implementation. It's not needed on >>>> musl (we provide sigisemptyset), but if this version were used, it >>>> would give the wrong results, because musl's sigemptyset only fills >>>> the first _NSIG-1 bits and ignores the remaining ~900 bits of junk in >>>> sigset_t. >>> >>> Why does musl use such pointlessly huge sigset_t? >> >> >> i would expect a warning here. ret is int and memcopy returns (void *). >> This makes int=void*. >> >> re, >> wh > > -dborca > _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
