Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

`exec': string contains null byte (ArgumentError)

cmd = "snv co #{rep} --username #{svn_user} --password #{pxs}" 

puts cmd  # this code wotks and prints all vars values normally

exec(cmd)   
xpto.rb:69:in `exec': string contains null byte (ArgumentError)
    from xpto.rb:69
$ ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux]
$ gem -v
1.3.7

Whats going on? How can I solve this?

like image 287
Bera Avatar asked Aug 10 '12 22:08

Bera


1 Answers

Your cmd string has got a null (i.e. zero) byte in it somehow. Using puts won’t show up any null bytes, they’ll just be left out of the output:

1.8.7 :001 > exec "\0"
ArgumentError: string contains null byte
        from (irb):1:in `exec'
        from (irb):1
1.8.7 :002 > puts "n\0n"
nn
 => nil 

You should probably check how your rep, svn_user and pxs variables are being populated to see if you can track down the source of these null bytes, but as a quick fix you could use gsub! to remove them:

cmd.gsub!(/\0/, '')
like image 63
matt Avatar answered Sep 24 '22 13:09

matt