Re: pivot_root - wrong check on mount(2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 11/26/20 10:31 AM, Michael Kerrisk (man-pages) wrote:
> Hello Davide,
> 
> On Thu, 26 Nov 2020 at 01:01, Davide Giorgio <davide@xxxxxxxxxxxxxxxx> wrote:
>>
>> Good morning,
>>
>> reading the pivot_root man page
>> (https://man7.org/linux/man-pages/man2/pivot_root.2.html)
>> there seems to be an error in the example source program
>> "pivot_root_demo.c".
>> In particular, there is a wrong check on the return value of mount(2).
>> https://man7.org/linux/man-pages/man2/mount.2.html#RETURN_VALUE
>>
>> The error is in this line
>> if (mount(NULL, "/", NULL, MS_REC | MS_PRIVATE, NULL) == 1)
>>
>> that should be
>> if (mount(NULL, "/", NULL, MS_REC | MS_PRIVATE, NULL) == -1)
>>
>>
>> Thank you for your work, kind regards
> 
> Thanks! Fixed!

Hi Michael,

What about fixing this from a different approach:

instead of comparing against -1
for functions that either return either 0 or -1,
we can include those functions in the greater family of
functions that return either 0 or non-zero (error code).
I propose comparing against 0:

- if (mount(NULL, "/", NULL, MS_REC | MS_PRIVATE, NULL) == 1)
+ if (mount(NULL, "/", NULL, MS_REC | MS_PRIVATE, NULL) != 0)

I consider this to be safer, simpler,
and although negligible, also faster.

What are your thoughts?

Thanks,

Alex

> 
> Cheers,
> 
> Michael
> 



[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux