[Top][All Lists]

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

Re: [PATCH] Use strdup in dd to avoid changing argv elements

From: Eric Blake
Subject: Re: [PATCH] Use strdup in dd to avoid changing argv elements
Date: Mon, 28 Jan 2008 06:44:44 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20071031 Thunderbird/ Mnenhy/

Hash: SHA1

According to Jim Meyering on 1/28/2008 6:28 AM:
| Thanks for the suggestion, but that introduces a new way for
| dd to fail: strdup returning NULL would often lead to a segfault.
| Even if it were to use xstrdup, to avoid that, I don't think it's
| justifiable solely in order to preserve ps' view of the dd command line.

However, it IS justifiable by the fact that POSIX requires applications to
treat argv[] as constant (ie. modifying argv in-place is not
standards-compliant).  True, most systems let you get away with
modifications (in particular, think about getopt_long's behavior), but it
would matter if we ever port coreutils to a system that follows the POSIX
permission to insist on no modifications to the original argv and contents.

"The statement about argv[] and envp[] being constants is included to make
explicit to future writers of language bindings that these objects are
completely constant. Due to a limitation of the ISO C standard, it is not
possible to state that idea in standard C."

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


reply via email to

[Prev in Thread] Current Thread [Next in Thread]