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?
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/, '')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With