On Mon, 10 Sep 2012, Andreas Tille wrote: > But these are totally different things: I understood your initial > mail that using debian/copyright is insecure. Now you come up with > the argument that using backsticks might be insecure. So either > backsticks are insecure for *any* file we are using (IMHO the > current implementation is not - but Perl experts might have another > look at[1]) or not.
lines like the following: `find "$main_source_dir" -path "$main_source_dir/$_" -print0 | xargs -0 rm -rf`; should really be written like this: system('find',$main_source_dir,'-path',"$main_source_dir/$_",qw(-exec rm -rf {} ;))==0 or die "failure to run find properly"; Doing the first will cause problems if Files-Excluded: contains an entry with ",[1] whereas it will be just fine if there aren't any entries. [You also probably really wanted xargs -0r, just in case nothing was matched.] Ditto for everywhere else that backticks is used. [In general, if you're accepting any user input into a function which calls backticks, you almost certainly want system() instead. If you want the output of the command, use three argument open.] (You could also avoid calling out to find completely, and use Find::File and File::Path::rmtree or similar, but that's a more personal decision.) Don Armstrong 1: I haven't checked to see whether " could even make it through to the backticks code, but it's better to just handle it properly in the first place. -- I don't care how poor and inefficient a little country is; they like to run their own business. I know men that would make my wife a better husband than I am; but, darn it, I'm not going to give her to 'em. -- The Best of Will Rogers http://www.donarmstrong.com http://rzlab.ucr.edu -- To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20120910170740.gs8...@rzlab.ucr.edu