os: do not allow || and \n in system/exec
parent
df5faf35e5
commit
e3d8ab5849
|
@ -355,8 +355,8 @@ pub:
|
||||||
|
|
||||||
// exec starts the specified command, waits for it to complete, and returns its output.
|
// exec starts the specified command, waits for it to complete, and returns its output.
|
||||||
pub fn exec(cmd string) ?Result {
|
pub fn exec(cmd string) ?Result {
|
||||||
if cmd.contains(';') || cmd.contains('&&') {
|
if cmd.contains(';') || cmd.contains('&&') || cmd.contains('||') || cmd.contains('\n') {
|
||||||
return error('; and && are not allowed in shell commands')
|
return error(';, &&, || and \\n are not allowed in shell commands')
|
||||||
}
|
}
|
||||||
pcmd := '$cmd 2>&1'
|
pcmd := '$cmd 2>&1'
|
||||||
f := vpopen(pcmd)
|
f := vpopen(pcmd)
|
||||||
|
@ -381,9 +381,9 @@ pub fn exec(cmd string) ?Result {
|
||||||
|
|
||||||
// `system` works like `exec()`, but only returns a return code.
|
// `system` works like `exec()`, but only returns a return code.
|
||||||
pub fn system(cmd string) int {
|
pub fn system(cmd string) int {
|
||||||
if cmd.contains(';') || cmd.contains('&&') {
|
if cmd.contains(';') || cmd.contains('&&') || cmd.contains('||') || cmd.contains('\n') {
|
||||||
// TODO remove panic
|
// TODO remove panic
|
||||||
panic('; and && are not allowed in shell commands')
|
panic(';, &&, || and \\n are not allowed in shell commands')
|
||||||
}
|
}
|
||||||
mut ret := int(0)
|
mut ret := int(0)
|
||||||
$if windows {
|
$if windows {
|
||||||
|
|
Loading…
Reference in New Issue