Gentoo Archives: gentoo-commits

From: Mike Frysinger <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/sandbox:master commit in: src/
Date: Fri, 29 Oct 2021 05:37:50
Message-Id: 1635478738.c029863b70ca77f59cd181974cfab0fa18c0a265.vapier@gentoo
1 commit: c029863b70ca77f59cd181974cfab0fa18c0a265
2 Author: Mike Frysinger <vapier <AT> gentoo <DOT> org>
3 AuthorDate: Fri Oct 29 03:38:58 2021 +0000
4 Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org>
5 CommitDate: Fri Oct 29 03:38:58 2021 +0000
6 URL: https://gitweb.gentoo.org/proj/sandbox.git/commit/?id=c029863b
7
8 sandbox: avoid repetitive strlen calculations when building cmdline
9
10 Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org>
11
12 src/sandbox.c | 20 +++++++++-----------
13 1 file changed, 9 insertions(+), 11 deletions(-)
14
15 diff --git a/src/sandbox.c b/src/sandbox.c
16 index 6cd5f38..7e8a769 100644
17 --- a/src/sandbox.c
18 +++ b/src/sandbox.c
19 @@ -263,21 +263,19 @@ int main(int argc, char **argv)
20 str_list_add_item_copy(argv_bash, sandbox_info.sandbox_rc, oom_error);
21 if (argc >= 2) {
22 int i;
23 + size_t cmdlen;
24 + char *cmd = NULL;
25
26 str_list_add_item_copy(argv_bash, run_str, oom_error);
27 str_list_add_item_copy(argv_bash, argv[1], oom_error);
28 + cmdlen = strlen(argv_bash[4]);
29 for (i = 2; i < argc; i++) {
30 - char *tmp_ptr;
31 -
32 - tmp_ptr = xrealloc(argv_bash[4],
33 - (strlen(argv_bash[4]) +
34 - strlen(argv[i]) + 2) *
35 - sizeof(char));
36 - argv_bash[4] = tmp_ptr;
37 -
38 - snprintf(argv_bash[4] + strlen(argv_bash[4]),
39 - strlen(argv[i]) + 2, " %s",
40 - argv[i]);
41 + size_t arglen = strlen(argv[i]);
42 + argv_bash[4] = xrealloc(argv_bash[4], cmdlen + arglen + 2);
43 + argv_bash[4][cmdlen] = ' ';
44 + memcpy(argv_bash[4] + cmdlen + 1, argv[i], arglen);
45 + cmdlen += arglen + 1;
46 + argv_bash[4][cmdlen] = '\0';
47 }
48 }