aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/csource/csource.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-12-26 09:39:22 +0100
committerDmitry Vyukov <dvyukov@google.com>2017-12-27 09:18:26 +0100
commitb7b7ac19fd9e2afbf5aea4db5e3f318576e6809f (patch)
treec43e8bbb312fc42016cd75526301ac9842ae70c9 /pkg/csource/csource.go
parent6f03c356200becfa347b8abade66ac74f52c10c9 (diff)
executor: check format strings
I see a crash which says: #0: too much cover 0 (errno 0) while the code is: uint64_t n = ...; if (n >= kCoverSize) fail("#%d: too much cover %u", th->id, n); It seems that the high part of n is set, but we don't see it. Add printf format attribute to fail and friends and fix all similar cases. Caught a bunch of similar cases and a missing argument in: exitf("opendir(%s) failed due to NOFILE, exiting");
Diffstat (limited to 'pkg/csource/csource.go')
-rw-r--r--pkg/csource/csource.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/pkg/csource/csource.go b/pkg/csource/csource.go
index 14f381451..13377c57e 100644
--- a/pkg/csource/csource.go
+++ b/pkg/csource/csource.go
@@ -143,6 +143,7 @@ func Write(p *prog.Prog, opts Options) ([]byte, error) {
out0 = re.ReplaceAllString(out0, "")
}
out0 = strings.Replace(out0, "NORETURN", "", -1)
+ out0 = strings.Replace(out0, "PRINTF", "", -1)
// Remove duplicate new lines.
out1 := []byte(out0)