diff options
| author | Joseph Hunkeler <jhunkeler@users.noreply.github.com> | 2026-06-02 17:04:13 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-02 17:04:13 -0400 |
| commit | 252b9646c1cb0538123d51ced4a733f3dcfc266b (patch) | |
| tree | 84b300af068db367bd9f3262487aeef3c7ba22d0 /src/lib/delivery/delivery_test.c | |
| parent | d8ee8c27444a56bb98dd8bd67a019a1e9efbcc10 (diff) | |
| download | stasis-252b9646c1cb0538123d51ced4a733f3dcfc266b.tar.gz | |
Safe strings, finally (#145)
* Add string copy and catonate replacements
* safe_strncpy
* safe_strncat
* Replace string functions
* gbo.ini: Update tweakwcs to 0.9.0
* generic.ini: Update tweakwcs to 0.9.0
Diffstat (limited to 'src/lib/delivery/delivery_test.c')
| -rw-r--r-- | src/lib/delivery/delivery_test.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/lib/delivery/delivery_test.c b/src/lib/delivery/delivery_test.c index f59a62e..c1ef1ad 100644 --- a/src/lib/delivery/delivery_test.c +++ b/src/lib/delivery/delivery_test.c @@ -199,13 +199,11 @@ void delivery_tests_run(struct Delivery *ctx) { msg(STASIS_MSG_L3, "Queuing task for %s\n", test->name); memset(&proc, 0, sizeof(proc)); - strncpy(cmd, test->script, strlen(test->script) + STASIS_BUFSIZ - 1); - cmd[strlen(test->script) + STASIS_BUFSIZ - 1] = '\0'; + safe_strncpy(cmd, test->script, strlen(test->script) + STASIS_BUFSIZ); char *cmd_rendered = tpl_render(cmd); if (cmd_rendered) { if (strcmp(cmd_rendered, cmd) != 0) { - strncpy(cmd, cmd_rendered, strlen(test->script) + STASIS_BUFSIZ - 1); - cmd[strlen(cmd_rendered) ? strlen(cmd_rendered) - 1 : 0] = 0; + safe_strncpy(cmd, cmd_rendered, strlen(test->script) + STASIS_BUFSIZ); } guard_free(cmd_rendered); } else { @@ -229,8 +227,7 @@ void delivery_tests_run(struct Delivery *ctx) { if (!globals.enable_parallel || !test->parallel) { selected = SERIAL; memset(pool_name, 0, sizeof(pool_name)); - strncpy(pool_name, "serial", sizeof(pool_name) - 1); - pool_name[sizeof(pool_name) - 1] = '\0'; + safe_strncpy(pool_name, "serial", sizeof(pool_name)); } if (asprintf(&runner_cmd, runner_cmd_fmt, cmd) < 0) { @@ -281,14 +278,12 @@ void delivery_tests_run(struct Delivery *ctx) { exit(1); } - strncpy(cmd, test->script_setup, cmd_len - 1); - cmd[cmd_len - 1] = '\0'; + safe_strncpy(cmd, test->script_setup, cmd_len); char *cmd_rendered = tpl_render(cmd); if (cmd_rendered) { if (strcmp(cmd_rendered, cmd) != 0) { - strncpy(cmd, cmd_rendered, cmd_len - 1); - cmd[strlen(cmd_rendered) ? strlen(cmd_rendered) - 1 : 0] = '\0'; + safe_strncpy(cmd, cmd_rendered, cmd_len); } guard_free(cmd_rendered); } else { |
