Date: Mon, 21 Jul 2003 11:15:38 -0600 From: Chad David <davidc@issci.ca> To: Tim Kientzle <kientzle@acm.org>, hackers@freebsd.org Subject: Re: Correct way to call execve? Message-ID: <20030721171538.GA21656@colnta.acns.ab.ca> In-Reply-To: <20030721165735.GA56766@ussenterprise.ufp.org> References: <3F1B0610.90803@acm.org> <20030720225041.GA26277@ussenterprise.ufp.org> <3F1C0C91.6050203@acm.org> <20030721165735.GA56766@ussenterprise.ufp.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jul 21, 2003 at 12:57:35PM -0400, Leo Bicknell wrote:
> In a message written on Mon, Jul 21, 2003 at 08:53:53AM -0700, Tim Kientzle wrote:
> > Actually, this example passes -Wall if you declare
> > "execargv" as simply "char *[]". However, I'm looking
> > for something that passes gcc -Wwrite-strings, which this
> > example does not.
>
> % cat exec.c
>
> #include <unistd.h>
> #include <paths.h>
>
> int main(int argc, char *const argv[], char *const envp[]) {
> char *execargv[2];
>
> execargv[0] = (char *)_PATH_BSHELL;
> execargv[1] = (char *)NULL;
>
> execve(_PATH_BSHELL,execargv,envp);
>
> return 0;
> }
> % cc -Wwrite-strings exec.c
> % cc -Wall exec.c
>
> Looks good to me.
Try cc -Wwrite-strings -Wcast-qual exec.c.
You cannot simply cast away a const.
--
Chad David davidc@issci.ca
www.FreeBSD.org davidc@freebsd.org
ISSci Inc. Calgary, Alberta Canada
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030721171538.GA21656>
