Subject: Re: [PATCH iproute2 v4] ipbatch: fix use of 'ip netns exec'

From: Nicolas Dichtel <[email-masked]>
Date: Wed, 10 Jul 2013 11:52:12 +0200

Le 09/07/2013 20:13, Ben Hutchings a écrit :
> On Tue, 2013-07-09 at 18:59 +0200, Nicolas Dichtel wrote:
>> Le 09/07/2013 18:19, Ben Hutchings a écrit :
>>> On Tue, 2013-07-09 at 17:55 +0200, Nicolas Dichtel wrote:
>>> [...]
>>>> diff --git a/ip/ipnetns.c b/ip/ipnetns.c
>>>> index fa2b681..cdc3101 100644
>>>> --- a/ip/ipnetns.c
>>>> +++ b/ip/ipnetns.c
>>>> @@ -42,6 +42,7 @@
>>>>    #define MS_SHARED	(1 << 20)
>>>>    #endif
>>>>
>>>> +extern char *batch_file;
>> I let Stephen choose, he suggest me this.
>>
>>>
>>> Should be declared in a header file.
>>>
>>>>    #ifndef HAVE_SETNS
>>>>    static int setns(int fd, int nstype)
>>>> @@ -185,6 +186,42 @@ static int netns_exec(int argc, char **argv)
>>>>    	/* Setup bind mounts for config files in /etc */
>>>>    	bind_etc(name);
>>>>
>>>> +	if (batch_file) {
>>>> +		int status;
>>>> +		pid_t pid;
>>>> +
>>>> +		pid = fork();
>>>> +		if (pid < 0) {
>>>> +			perror("fork");
>>>> +			return EXIT_FAILURE;
>>>
>>> return -1;
>> man exit says:
>> The use of EXIT_SUCCESS and EXIT_FAILURE is slightly more portable (to non-UNIX
>> environments) than the use of 0 and some nonzero value like 1 or -1.
>>
>> And in fact, it was so before my patch.
>
> As your own earlier comment says, do_cmd() negates the return value.
Yes, but EXIT_FAILURE is used everywhere in ip/ipnetns.c.

Stephen, should I send a patch to replace use of EXIT_FAILURE by -1 in ipnetns.c?