From: Maxim Kokryashkin via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: Sergey Kaplun <skaplun@tarantool.org>
Cc: Maxim Kokryashkin <max.kokryashkin@gmail.com>,
tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH luajit v2] Fix command-line argv handling.
Date: Thu, 11 Apr 2024 17:45:35 +0300 [thread overview]
Message-ID: <ezcfjdompfnpy2cloipmcmkmjbh2tip2ytwjcgtvqyybgevfbk@4cwhjma7ulrn> (raw)
In-Reply-To: <Zhfk-txTq2u0x2Dj@root>
Hi, Sergey!
Thanks for the patch!
Fixed, branch is force-pushed:
===
diff --git a/test/tarantool-c-tests/CMakeLists.txt b/test/tarantool-c-tests/CMakeLists.txt
index 7ae440e2..5f789ad8 100644
--- a/test/tarantool-c-tests/CMakeLists.txt
+++ b/test/tarantool-c-tests/CMakeLists.txt
@@ -36,9 +36,9 @@ add_test_suite_target(tarantool-c-tests
DEPENDS libluajit libtest tarantool-c-tests-build
)
-# XXX: The tarantool-c-tests target cannot be linked with the LuaJIT
-# library when it is built as shared. The test suite is disabled for
-# the dynamic build mode.
+# XXX: The tarantool-c-tests target cannot be linked with the
+# LuaJIT library when it is built as shared. The test suite is
+# disabled for the dynamic build mode.
if(BUILDMODE STREQUAL "dynamic")
message("Dynamic build mode, tarantool-c-tests suite is empty")
return()
diff --git a/test/tarantool-tests/CMakeLists.txt b/test/tarantool-tests/CMakeLists.txt
index 05deb534..0d5f3774 100644
--- a/test/tarantool-tests/CMakeLists.txt
+++ b/test/tarantool-tests/CMakeLists.txt
@@ -128,7 +128,8 @@ file(GLOB_RECURSE tests ${CMAKE_CURRENT_SOURCE_DIR} "*${LUA_TEST_SUFFIX}")
foreach(test_path ${tests})
get_filename_component(test_name ${test_path} NAME)
- if(test_name STREQUAL "fix-argv-handling.test.lua" AND NOT BUILDMODE STREQUAL "dynamic")
+ if(test_name STREQUAL "fix-argv-handling.test.lua"
+ AND NOT BUILDMODE STREQUAL "dynamic")
continue()
endif()
diff --git a/test/tarantool-tests/fix-argv-handling.test.lua b/test/tarantool-tests/fix-argv-handling.test.lua
index 57e5f169..fd558705 100644
--- a/test/tarantool-tests/fix-argv-handling.test.lua
+++ b/test/tarantool-tests/fix-argv-handling.test.lua
@@ -5,9 +5,9 @@ local test = tap.test('fix-argv-handling'):skipcond({
test:plan(1)
--- XXX: Since the Linux kernel 5.18-rc1 release, `argv` is
--- forced to a single empty string if it is empty [1], so
--- the issue is not reproducible on new kernels.
+-- XXX: Since the Linux kernel 5.18-rc1 release, `argv` is forced
+-- to a single empty string if it is empty [1], so the issue is
+-- not reproducible on new kernels.
--
-- [1]: https://lore.kernel.org/all/20220201000947.2453721-1-keescook@chromium.org/
@@ -19,7 +19,7 @@ local cmd = utils.exec.luabin(arg)
-- `luaL_newstate`.
local output = execlib.empty_argv_exec(cmd)
--- Without the patch, the test fails with a segmentation fault instead of
--- returning an error.
+-- Without the patch, the test fails with a segmentation fault
+-- instead of returning an error.
test:like(output, 'cannot create state', 'correct argv handling')
test:done(true)
diff --git a/test/tarantool-tests/fix-argv-handling/execlib.c b/test/tarantool-tests/fix-argv-handling/execlib.c
index ef8217d4..a8d5f16c 100644
--- a/test/tarantool-tests/fix-argv-handling/execlib.c
+++ b/test/tarantool-tests/fix-argv-handling/execlib.c
@@ -1,7 +1,7 @@
+#define _GNU_SOURCE
#include "lua.h"
#include "lauxlib.h"
-#define _GNU_SOURCE
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
@@ -22,7 +22,7 @@ static int empty_argv_exec(struct lua_State *L)
{
const char *path = luaL_checkstring(L, -1);
int pipefds[2] = {};
- char *const argv[] = {NULL};
+ char *const argv[] = {NULL};
char buf[BUF_SIZE];
CHECKED(pipe2(pipefds, O_CLOEXEC));
@@ -32,15 +32,15 @@ static int empty_argv_exec(struct lua_State *L)
if (pid == 0) {
/*
- * Mock the `luaL_newstate` with
- * an error-injected version.
+ * Mock the `luaL_newstate` with an error-injected
+ * version.
*/
setenv("LD_PRELOAD", "mynewstate.so", 1);
- CHECKED(dup2(pipefds[1], 1));
- CHECKED(dup2(pipefds[1], 2));
+ CHECKED(dup2(pipefds[1], STDOUT_FILENO));
+ CHECKED(dup2(pipefds[1], STDERR_FILENO));
/*
- * Pipes are closed on the exec
- * call because of the O_CLOEXEC flag.
+ * Pipes are closed on the exec call because of
+ * the O_CLOEXEC flag.
*/
CHECKED(execvp(path, argv));
}
@@ -48,7 +48,6 @@ static int empty_argv_exec(struct lua_State *L)
close(pipefds[1]);
CHECKED(waitpid(pid, NULL, 0));
-
CHECKED(read(pipefds[0], buf, BUF_SIZE));
close(pipefds[0]);
===
next prev parent reply other threads:[~2024-04-11 14:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-11 13:00 Maxim Kokryashkin via Tarantool-patches
2024-04-11 13:26 ` Sergey Kaplun via Tarantool-patches
2024-04-11 14:45 ` Maxim Kokryashkin via Tarantool-patches [this message]
2024-04-11 14:57 ` Sergey Kaplun via Tarantool-patches
2024-04-11 16:30 ` Sergey Bronnikov via Tarantool-patches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ezcfjdompfnpy2cloipmcmkmjbh2tip2ytwjcgtvqyybgevfbk@4cwhjma7ulrn \
--to=tarantool-patches@dev.tarantool.org \
--cc=m.kokryashkin@tarantool.org \
--cc=max.kokryashkin@gmail.com \
--cc=skaplun@tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH luajit v2] Fix command-line argv handling.' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox