[cfe-dev] interesting ccc issue

Sam Bishop sam at bishop.dhs.org
Wed Feb 6 08:11:16 PST 2008

On Tue, February 5, 2008 5:20 pm, Anders Carlsson wrote:
>   def run(args):
> -    cmd = ' '.join(args)
> +    cmd = ' '.join(args).replace("\"", "\\\"");
>       print >> sys.stderr, cmd
>       code = os.system(cmd)

Double quotes, unfortunately, are just the tip of the iceberg.  Consider
-DCMD_STRING='"echo $(ls)"' or -DNOP='do { } while (0)', for example.

This is my fault.  When I proposed the subprocess.call() -> os.system()
conversion, I didn't consider the -D option and that its arguments can be
nearly anything.

I think that we will be happiest long term if we go back to using the
subprocess module and requiring a 2.4+ version of Python.  We'll probably
end up wanting other 2.4+ features anyway.

The attached patch reverts the subprocess.call() -> os.system() conversion. 
A close review, of course, is welcome.  :)

Sam Bishop
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ccc-use-subprocess-module.patch
Type: application/octet-stream
Size: 1037 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20080206/48fed5fc/attachment.obj>

More information about the cfe-dev mailing list