Skip to content
This repository was archived by the owner on Apr 30, 2021. It is now read-only.

Commit 95963cc

Browse files
author
Yevgeny Pats
committed
add prefix for fuzzer output
1 parent d1373e1 commit 95963cc

File tree

5 files changed

+42
-16
lines changed

5 files changed

+42
-16
lines changed

client/agent.go

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package client
22

33
import (
4+
"bufio"
45
"cloud.google.com/go/firestore"
56
"context"
67
"fmt"
8+
"io"
79
"log"
810
"os"
911
"os/exec"
@@ -47,6 +49,27 @@ func libFuzzerExitCodeToStatus(exitCode int) string {
4749
return status
4850
}
4951

52+
func appendPrefixToCmd(cmd *exec.Cmd) error {
53+
stderr, err := cmd.StderrPipe()
54+
if err != nil {
55+
return err
56+
}
57+
stdout, err := cmd.StdoutPipe()
58+
if err != nil {
59+
return err
60+
}
61+
go func() {
62+
merged := io.MultiReader(stderr, stdout)
63+
scanner := bufio.NewScanner(merged)
64+
for scanner.Scan() {
65+
msg := scanner.Text()
66+
fmt.Printf("FUZZER: %s\n", msg)
67+
}
68+
}()
69+
70+
return nil
71+
}
72+
5073
func (c *FuzzitClient) runlibFuzzerMerge() error {
5174
if err := os.Mkdir("merge", 0644); err != nil {
5275
return err
@@ -69,24 +92,25 @@ func (c *FuzzitClient) runlibFuzzerMerge() error {
6992
log.Println("Running merge with: ./fuzzer " + strings.Join(args, " "))
7093
cmd := exec.Command("./fuzzer",
7194
args...)
72-
cmd.Stdout = os.Stdout
73-
cmd.Stderr = os.Stderr
74-
err := cmd.Run()
75-
if err != nil {
95+
if err := appendPrefixToCmd(cmd); err != nil {
96+
return err
97+
}
98+
99+
if err := cmd.Run(); err != nil {
76100
return err
77101
}
78102

79-
if err = c.archiveAndUpload("merge",
103+
if err := c.archiveAndUpload("merge",
80104
fmt.Sprintf("orgs/%s/targets/%s/corpus.tar.gz", c.Org, c.targetId),
81105
"corpus.tar.gz"); err != nil {
82106
return err
83107
}
84108

85-
if err = os.RemoveAll("corpus"); err != nil {
109+
if err := os.RemoveAll("corpus"); err != nil {
86110
return err
87111
}
88112

89-
if err = os.Rename("merge", "corpus"); err != nil {
113+
if err := os.Rename("merge", "corpus"); err != nil {
90114
return err
91115
}
92116

@@ -144,8 +168,9 @@ func (c *FuzzitClient) runLibFuzzerFuzzing() error {
144168
log.Println("Running fuzzing with: ./fuzzer " + strings.Join(args, " "))
145169
cmd := exec.Command("./fuzzer",
146170
args...)
147-
cmd.Stdout = os.Stdout
148-
cmd.Stderr = os.Stderr
171+
if err := appendPrefixToCmd(cmd); err != nil {
172+
return err
173+
}
149174
err = cmd.Start()
150175
// Use a channel to signal completion so we can use a select statement
151176
done := make(chan error)
@@ -244,8 +269,9 @@ func (c *FuzzitClient) runLibFuzzerRegression() error {
244269
log.Println("Running regression...")
245270
cmd := exec.Command("./fuzzer",
246271
args...)
247-
cmd.Stdout = os.Stdout
248-
cmd.Stderr = os.Stderr
272+
if err := appendPrefixToCmd(cmd); err != nil {
273+
return err
274+
}
249275

250276
exitCode := 0
251277
if err := cmd.Run(); err != nil {

client/client.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
)
1111

1212
const FuzzitEndpoint = "https://app.fuzzit.dev"
13+
const Version = "v2.4.41"
1314

1415
type Target struct {
1516
Name string `firestore:"target_name"`

client/commands.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,11 +258,11 @@ func (c *FuzzitClient) CreateLocalJob(jobConfig Job, files []string) error {
258258
Cmd: []string{
259259
"/bin/sh",
260260
"-c",
261-
`cd /app
261+
fmt.Sprintf(`cd /app
262262
echo "Downloading fuzzit cli/agent..."
263-
wget -q -O fuzzit https://github.com/fuzzitdev/fuzzit/releases/download/v2.4.36/fuzzit_Linux_x86_64
263+
wget -q -O fuzzit https://github.com/fuzzitdev/fuzzit/releases/download/%s/fuzzit_Linux_x86_64
264264
chmod a+x fuzzit
265-
./fuzzit run --type regression`,
265+
./fuzzit run --type regression`, Version),
266266
},
267267
AttachStdin: true,
268268
},

cmd/root.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ var gFuzzitClient *client.FuzzitClient
3131
var rootCmd = &cobra.Command{
3232
Use: "fuzzit",
3333
Short: "Continuous fuzzing made simple CLI",
34-
Version: "2.4.40",
34+
Version: client.Version,
3535
}
3636

3737
func Execute() {

cmd/run.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ var runCmd = &cobra.Command{
3131
Short: "Run job locally (used by the agent)",
3232
Args: cobra.ExactArgs(0),
3333
Run: func(cmd *cobra.Command, args []string) {
34-
log.SetPrefix("AGENT")
3534
apiKey := viper.GetString("api-key")
3635
gFuzzitClient, err := client.NewFuzzitClient(apiKey)
3736
if err != nil {

0 commit comments

Comments
 (0)