Error cases when parsing commands into argv are not handled sufficiently (#506)

This commit is contained in:
Frederik Ring 2025-01-06 19:55:15 +01:00 committed by GitHub
parent e4beef200a
commit 49b8d2f8d8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -24,10 +24,18 @@ import (
) )
func (s *script) exec(containerRef string, command string, user string) ([]byte, []byte, error) { func (s *script) exec(containerRef string, command string, user string) ([]byte, []byte, error) {
args, _ := argv.Argv(command, nil, nil) args, err := argv.Argv(command, nil, nil)
if err != nil {
return nil, nil, errwrap.Wrap(err, fmt.Sprintf("error parsing argv from '%s'", command))
}
if len(args) == 0 {
return nil, nil, errwrap.Wrap(nil, "received unexpected empty command")
}
commandEnv := []string{ commandEnv := []string{
fmt.Sprintf("COMMAND_RUNTIME_ARCHIVE_FILEPATH=%s", s.file), fmt.Sprintf("COMMAND_RUNTIME_ARCHIVE_FILEPATH=%s", s.file),
} }
execID, err := s.cli.ContainerExecCreate(context.Background(), containerRef, container.ExecOptions{ execID, err := s.cli.ContainerExecCreate(context.Background(), containerRef, container.ExecOptions{
Cmd: args[0], Cmd: args[0],
AttachStdin: true, AttachStdin: true,