Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Aug 2015 16:20:46 -0700
From:      Xin Li <delphij@delphij.net>
To:        Ed Schouten <ed@nuxi.nl>, Xin LI <delphij@freebsd.org>
Cc:        src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r286601 - head/usr.bin/patch
Message-ID:  <55C931CE.3030806@delphij.net>
In-Reply-To: <CABh_MKk5uOupQx9farP3_5D1J0f-5fAt0EXqnhautx0TNm9AaA@mail.gmail.com>
References:  <201508102131.t7ALVo5J050735@repo.freebsd.org> <CABh_MKk5uOupQx9farP3_5D1J0f-5fAt0EXqnhautx0TNm9AaA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--2m1pghCR1O71M73RtjH9Obr4q41dvStdR
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 08/10/15 14:40, Ed Schouten wrote:
> Hi Xin,
>=20
> 2015-08-10 23:31 GMT+02:00 Xin LI <delphij@freebsd.org>:
>> +                               argp[0] =3D strdup(RCSDIFF);
>> +                               argp[1] =3D strdup(filename);
>> ...
>> +                               free(argp[1]);
>> +                               free(argp[0]);
>=20
>> +                       argp[0] =3D strdup(CHECKOUT);
>> +                       argp[1] =3D strdup("-l");
>> +                       argp[2] =3D strdup(filename);
>> ...
>> +                       free(argp[2]);
>> +                       free(argp[1]);
>> +                       free(argp[0]);
>=20
> There's no need to call strdup() here, right? As far as I know,
> execve() and posix_spawn() don't modify the arguments/environment.
> These functions should use "const char *const *" as its argument type,
> but that cannot be used, as it would cause compiler errors if "char
> **" is passed in.
>=20
> See the table close to the bottom of this article:
>=20
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/execve.html

Do you have a better solution for this?  No, this is not ideal but I
didn't find a better alternative (or maybe I have missed something obviou=
s?)

I think with the current POSIX definition of the interface, we have only
two options: either strdup() or cast away const (I'd rather hide this
kind of uglyness in the library), no?

Cheers,
--=20
Xin LI <delphij@delphij.net>    https://www.delphij.net/
FreeBSD - The Power to Serve!           Live free or die


--2m1pghCR1O71M73RtjH9Obr4q41dvStdR
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.1.6 (FreeBSD)

iQIcBAEBCgAGBQJVyTHPAAoJEJW2GBstM+nscR0P/3PcbThFReBG/GUM8Nof6VlW
00UoCwKvJAN400k81W86RxPphOEe7TJicsgHBmRpFtzrgf4NzST+vxK5evANQZdT
WVWKUPoe5z+nDkAutB0CTmOjMdcegOwus/6lvm1IwZCJT7Qg0JOxn7MSR8CCjt+V
WEgL0qlFA/PqAZMUKiPRG9AEYj1NnT85LZ0KbBJCKh/ziZYTlL5A72vhQ1XaTjgN
KYOrM9gYqM/8sJM1oWvC7j8Dw3d9yL3HA4M1GxgvcnOAG408OyiFAweLGmhGfYSF
AbDuDB0GeEV7Q0JIppzIaMV/oRzWpJqDaBcZhjAX4ITAITl94pYPlzcwOubBvYsi
3dS8VdgBkVDtwwA+cJNX9Sn7S2gxqzRVb9W0AutU3LIB6bkKquPXspJJ5aZ6h6EI
GhJ+lbdM1odcihoL6PLssszw/k5hl1KXV0WRn742J0oj8bJErwgREW0PqysW7LWj
Y5O3fNIEdsXcHOZS6yjVb4ieDn1LxzxpAWCtODT2rooXQ4jTBlHC3tsZjoVtr7vN
mI0SeKbgz7I6qVR2hx62WID25uYaTiszUSc87u/A3cMexBmFzt3TcfXuwjtNCLV6
Wd7eNDYVqZ8T/Qop59Xi1gBzxwQvjul+0LeRLzZDIPDDbec1jpJKJNt6EUfQAhWe
qnwwojBWSjZ9GFtrZBt2
=1p1Q
-----END PGP SIGNATURE-----

--2m1pghCR1O71M73RtjH9Obr4q41dvStdR--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55C931CE.3030806>