diff --git a/src/say.c b/src/say.c
index 325696549c033c0d9a580afd0ee0dcf1e7c27635..bb6ed1311b87fd362c470159fa8c5f8bee6da8a0 100644
--- a/src/say.c
+++ b/src/say.c
@@ -294,7 +294,6 @@ log_pipe_init(struct log *log, const char *init_str)
 	char cmd[] = { "/bin/sh" };
 	char args[] = { "-c" };
 	char *argv[] = { cmd, args, (char *) init_str, NULL };
-	char *envp[] = { NULL };
 	sigset_t mask;
 	sigemptyset(&mask);
 	sigaddset(&mask, SIGCHLD);
@@ -331,7 +330,7 @@ log_pipe_init(struct log *log, const char *init_str)
 		 * dies, we get SIGPIPE and terminate.
 		 */
 		setpgid(0, 0);
-		execve(argv[0], argv, envp); /* does not return */
+		execv(argv[0], argv); /* does not return */
 		diag_set(SystemError, "can't start logger: %s", init_str);
 		return -1;
 	}
diff --git a/test/app-tap/logger_pipe.result b/test/app-tap/logger_pipe.result
new file mode 100644
index 0000000000000000000000000000000000000000..21e72e8ac3d7e23bd6532b5f1f4a6bdf8362e6cf
--- /dev/null
+++ b/test/app-tap/logger_pipe.result
@@ -0,0 +1 @@
+48
diff --git a/test/app-tap/logger_pipe.test.lua b/test/app-tap/logger_pipe.test.lua
new file mode 100755
index 0000000000000000000000000000000000000000..c427e8f9f9a2238f5b9e39c34c2567e959f589f7
--- /dev/null
+++ b/test/app-tap/logger_pipe.test.lua
@@ -0,0 +1,5 @@
+#!/usr/bin/env tarantool
+
+os.setenv('TEST_VAR', '48')
+box.cfg { log = '|echo $TEST_VAR' }
+os.exit(0)