Guten Morgen,
ist dieser Fehler so dumm, dass der nicht einmal eine Warnung wert ist?
Ungefähr 70 -W von -Waggregate-return bis -Wwrite-strings reichen nicht?
Kann man dagegen etwas tun?
1 | static void
|
2 | foo (const char *bozo_exe)
|
3 | {
|
4 | char *args[16], *envs[4];
|
5 |
|
6 | printf ("Starting %s...\n", bozo_exe);
|
7 | asprintf (&envs[ 0], "HOME=%s", "/");
|
8 | asprintf (&envs[ 1], "PWD=%s", "/");
|
9 | asprintf (&envs[ 2], "LANG=%s", "C");
|
10 | asprintf (&envs[ 3], "USER=%s", cf.uid);
|
11 | asprintf (&envs[ 4], "PATH=%s", "/sbin:/usr/sbin:/bin:/usr/bin");
|
12 | asprintf (&envs[ 5], "SHELL=%s", "/bin/sh");
|
13 | envs[ 6] = NULL;
|
14 |
|
15 | args[ 0] = strdup (bozo_exe);
|
16 | args[ 1] = strdup ("-P");
|
17 | // ...
|
18 | if (execve (args[0], args, envs)) {
|
19 | // ...
|
20 | }
|
21 | }
|
$ gcc --version
gcc (Debian 15.3.0-1) 15.3.0