There might be a case when input file is located in read-only directory and cpp fails when it tries to create output file there, so use /tmp folder for that as usually it should be writeable for any user.
Signed-off-by: Vadim Kochan <[email protected]> --- cpp.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/cpp.c b/cpp.c index 8448252..6734eac 100644 --- a/cpp.c +++ b/cpp.c @@ -6,22 +6,19 @@ int cpp_exec(char *in_file, char *out_file, size_t out_len) { - char cmd[256], *dir, *base; - char *a = xstrdup(in_file); - char *b = xstrdup(in_file); + char *tmp = xstrdup(in_file); + char cmd[256], *base; int ret = 0; - dir = dirname(a); - base = basename(b); + base = basename(tmp); - slprintf(out_file, out_len, "%s/.tmp-%u-%s", dir, rand(), base); + slprintf(out_file, out_len, "/tmp/.tmp-%u-%s", rand(), base); slprintf(cmd, sizeof(cmd), "cpp -I" ETCDIRE_STRING " %s > %s", in_file, out_file); if (system(cmd) != 0) ret = -1; - xfree(a); - xfree(b); + xfree(tmp); return ret; } -- 2.6.2 -- You received this message because you are subscribed to the Google Groups "netsniff-ng" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
