aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/csource
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-10-10 19:03:04 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-10-10 19:03:04 +0200
commitc2aee2410125f6648bf692d245222632e4365ea2 (patch)
treec71a9be521ac3b719b17909cb04897880ffd1908 /pkg/csource
parent4906c3219237ca3a4433017cb7e22e038db3664c (diff)
executor: include missing header
writev requires <sys/uio.h>. Include it.
Diffstat (limited to 'pkg/csource')
-rw-r--r--pkg/csource/common.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/pkg/csource/common.go b/pkg/csource/common.go
index 1a759ede0..965aaa655 100644
--- a/pkg/csource/common.go
+++ b/pkg/csource/common.go
@@ -68,6 +68,7 @@ var commonHeader = `
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
+#include <sys/uio.h>
#endif
#if defined(SYZ_EXECUTOR) || defined(SYZ_FAULT_INJECTION)
#include <errno.h>
@@ -378,16 +379,18 @@ static void snprintf_check(char* str, size_t size, const char* format, ...)
}
#define COMMAND_MAX_LEN 128
+#define PATH_PREFIX "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin "
+#define PATH_PREFIX_LEN (sizeof(PATH_PREFIX) - 1)
static void execute_command(const char* format, ...)
{
va_list args;
- char command[COMMAND_MAX_LEN];
+ char command[PATH_PREFIX_LEN + COMMAND_MAX_LEN];
int rv;
va_start(args, format);
-
- vsnprintf_check(command, sizeof(command), format, args);
+ memcpy(command, PATH_PREFIX, PATH_PREFIX_LEN);
+ vsnprintf_check(command + PATH_PREFIX_LEN, COMMAND_MAX_LEN, format, args);
rv = system(command);
if (rv != 0)
fail("tun: command \"%s\" failed with code %d", &command[0], rv);