From: "Kevin P. Fleming" <kpfleming@digium.com>
To: unlisted-recipients:; (no To-header on input)
Cc: git@vger.kernel.org
Subject: Re: [PATCH/RFC 4/4] Add interactive mode to git-shell for user-friendliness
Date: Wed, 14 Jul 2010 08:59:25 -0500 [thread overview]
Message-ID: <4C3DC2BD.6020907@digium.com> (raw)
In-Reply-To: <AANLkTil4XkVXM-96Jb7UOpH2CZBmtXEf7eEIIgrsqhg5@mail.gmail.com>
On 07/14/2010 04:04 AM, Ævar Arnfjörð Bjarmason wrote:
> On Wed, Jul 14, 2010 at 03:01, Greg Brockman <gdb@mit.edu> wrote:
>> + execl(prog, prog, (char *) NULL);
>
> Why the casting of NULL? It's not done in the builtin/help.c code.
>
> Anyway, if it was cast it should be to (const char *), shouldn't it?
When a NULL sentinel is passed to a varargs function that only
understands 'char *' arguments, the NULL must be cast specifically,
otherwise it will appear in the varargs array as an int or a long.
execl() is an example of a varargs function that only uses varargs
functionality to accept a variable *number* of arguments, it does not
allow for arguments of differing types, so it does not check the types
of its arguments at all. On any platform where an int and a pointer are
not the same size, this can cause a serious problem. When we came across
this problem in Asterisk, we added a macro called SENTINEL (that just
expands to the proper type for the target platform) that is used in
these cases, so that it is clear to the reader of the code what is going on.
--
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
skype: kpfleming | jabber: kfleming@digium.com
Check us out at www.digium.com & www.asterisk.org
next prev parent reply other threads:[~2010-07-14 13:59 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-14 3:01 [PATCH/RFC 0/4] Providing mechanism to list available repositories Greg Brockman
2010-07-14 3:01 ` [PATCH/RFC 1/4] Allow creation of arbitrary git-shell commands Greg Brockman
2010-07-14 15:27 ` Junio C Hamano
2010-07-14 17:42 ` Greg Brockman
2010-07-14 3:01 ` [PATCH/RFC 2/4] git-shell-commands: Add a command to list bare repos Greg Brockman
2010-07-14 3:01 ` [PATCH/RFC 3/4] git-shell-commands: Add a help command Greg Brockman
2010-07-14 3:01 ` [PATCH/RFC 4/4] Add interactive mode to git-shell for user-friendliness Greg Brockman
2010-07-14 9:04 ` Ævar Arnfjörð Bjarmason
2010-07-14 13:59 ` Kevin P. Fleming [this message]
2010-07-14 15:24 ` Bernhard R. Link
2010-07-14 15:40 ` Thomas Rast
[not found] ` <20100714160730.GA27078@pcpool00.mathematik.uni-freiburg.de>
[not found] ` <AANLkTikEjMeKPkyY4RdRq-ESkmmq4PvqCFPgp8yvLVBz@mail.gmail.com>
2010-07-17 4:12 ` Greg Brockman
2010-07-17 5:52 ` Jonathan Nieder
2010-07-17 14:53 ` Greg Brockman
2010-07-24 15:20 ` [PATCH] Cast execl*() NULL sentinels to (char *) Thomas Rast
2010-07-24 15:27 ` Ævar Arnfjörð Bjarmason
2010-07-14 10:27 ` [PATCH/RFC 4/4] Add interactive mode to git-shell for user-friendliness Johannes Sixt
2010-07-14 19:11 ` [PATCH/RFC 0/4] Providing mechanism to list available repositories Junio C Hamano
2010-07-14 19:29 ` Greg Brockman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C3DC2BD.6020907@digium.com \
--to=kpfleming@digium.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).