aboutsummaryrefslogtreecommitdiffstats
path: root/prog/decodeexec.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-12-15 15:17:13 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-12-15 15:17:13 +0100
commitdef91db3fe955168c82038ac2ee39783e81a2af0 (patch)
treeb6cbf100001e7b9fe34a8e2eb4ab00438f3e0154 /prog/decodeexec.go
parent7a944a0a666587f229291814b30644cc0859674c (diff)
prog, pkg/csource: more readable serialization for strings
Always serialize strings in readable format (non-hex). Serialize binary data in readable format in more cases. Fixes #792
Diffstat (limited to 'prog/decodeexec.go')
-rw-r--r--prog/decodeexec.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/prog/decodeexec.go b/prog/decodeexec.go
index 5866d8627..c57597437 100644
--- a/prog/decodeexec.go
+++ b/prog/decodeexec.go
@@ -52,7 +52,8 @@ type ExecArgResult struct {
}
type ExecArgData struct {
- Data []byte
+ Data []byte
+ Readable bool
}
type ExecArgCsum struct {
@@ -161,8 +162,12 @@ func (dec *execDecoder) readArg() ExecArg {
dec.vars[arg.Index] = arg.Default
return arg
case execArgData:
+ flags := dec.read()
+ size := flags & ^execArgDataReadable
+ readable := flags&execArgDataReadable != 0
return ExecArgData{
- Data: dec.readBlob(dec.read()),
+ Data: dec.readBlob(size),
+ Readable: readable,
}
case execArgCsum:
size := dec.read()