diff --git a/builder/amazon/chroot/communicator.go b/builder/amazon/chroot/communicator.go index 854522caa..8b552d002 100644 --- a/builder/amazon/chroot/communicator.go +++ b/builder/amazon/chroot/communicator.go @@ -9,6 +9,7 @@ import ( "os" "os/exec" "path/filepath" + "strconv" "strings" "syscall" @@ -23,8 +24,10 @@ type Communicator struct { } func (c *Communicator) Start(cmd *packer.RemoteCmd) error { + // need extra escapes for the command since we're wrapping it in quotes + cmd.Command = strconv.Quote(cmd.Command) command, err := c.CmdWrapper( - fmt.Sprintf("chroot %s /bin/sh -c \"%s\"", c.Chroot, cmd.Command)) + fmt.Sprintf("chroot %s /bin/sh -c %s", c.Chroot, cmd.Command)) if err != nil { return err }