aboutsummaryrefslogtreecommitdiff
path: root/src/lib/core
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2026-04-17 12:05:20 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2026-04-17 12:05:20 -0400
commit0c6bcfb345075dc042b139bcdfbc11cd862c7258 (patch)
tree6dd2c632663f94fb8b390c05b8ed51ad4e5f5872 /src/lib/core
parent90cbf865cb6e88d5db6484040dc4dc885f88caed (diff)
downloadstasis-0c6bcfb345075dc042b139bcdfbc11cd862c7258.tar.gz
Fix incorrect usage of maxlen argument in snprintf calls
Diffstat (limited to 'src/lib/core')
-rw-r--r--src/lib/core/artifactory.c18
-rw-r--r--src/lib/core/conda.c8
-rw-r--r--src/lib/core/docker.c4
-rw-r--r--src/lib/core/multiprocessing.c2
-rw-r--r--src/lib/core/utils.c4
5 files changed, 18 insertions, 18 deletions
diff --git a/src/lib/core/artifactory.c b/src/lib/core/artifactory.c
index 918b24e..9e41046 100644
--- a/src/lib/core/artifactory.c
+++ b/src/lib/core/artifactory.c
@@ -44,7 +44,7 @@ int artifactory_download_cli(char *dest,
return -1;
}
- snprintf(url, sizeof(url) - 1, "%s/%s/%s/%s/%s-%s-%s/%s",
+ snprintf(url, sizeof(url), "%s/%s/%s/%s/%s-%s-%s/%s",
jfrog_artifactory_base_url, // https://releases.jfrog.io/artifactory
jfrog_artifactory_product, // jfrog-cli
cli_major_ver, // v\d+(-jf)?
@@ -102,7 +102,7 @@ void jfrt_register_opt_int(int jfrt_val, const char *opt_name, struct StrList **
// option will not be used
return;
}
- snprintf(data, sizeof(data) - 1, "--%s=%d", opt_name, jfrt_val);
+ snprintf(data, sizeof(data), "--%s=%d", opt_name, jfrt_val);
strlist_append(&*opt_map, data);
}
@@ -113,7 +113,7 @@ void jfrt_register_opt_long(long jfrt_val, const char *opt_name, struct StrList
// option will not be used
return;
}
- snprintf(data, sizeof(data) - 1, "--%s=%ld", opt_name, jfrt_val);
+ snprintf(data, sizeof(data), "--%s=%ld", opt_name, jfrt_val);
strlist_append(&*opt_map, data);
}
@@ -232,7 +232,7 @@ int jfrog_cli(struct JFRT_Auth *auth, const char *subsystem, const char *task, c
auth->client_cert_path,
auth->password,
};
- snprintf(cmd, sizeof(cmd) - 1, "jf %s %s %s %s", subsystem, task, auth_args, args ? args : "");
+ snprintf(cmd, sizeof(cmd), "jf %s %s %s %s", subsystem, task, auth_args, args ? args : "");
redact_sensitive(redactable, sizeof(redactable) / sizeof (*redactable), cmd, cmd_redacted, sizeof(cmd_redacted) - 1);
guard_free(auth_args);
@@ -256,13 +256,13 @@ static int jfrog_cli_rt(struct JFRT_Auth *auth, char *task, char *args) {
int jfrog_cli_rt_build_collect_env(struct JFRT_Auth *auth, char *build_name, char *build_number) {
char cmd[STASIS_BUFSIZ] = {0};
- snprintf(cmd, sizeof(cmd) - 1, "\"%s\" \"%s\"", build_name, build_number);
+ snprintf(cmd, sizeof(cmd), "\"%s\" \"%s\"", build_name, build_number);
return jfrog_cli(auth, "rt", "build-collect-env", cmd);
}
int jfrog_cli_rt_build_publish(struct JFRT_Auth *auth, char *build_name, char *build_number) {
char cmd[STASIS_BUFSIZ] = {0};
- snprintf(cmd, sizeof(cmd) - 1, "\"%s\" \"%s\"", build_name, build_number);
+ snprintf(cmd, sizeof(cmd), "\"%s\" \"%s\"", build_name, build_number);
return jfrog_cli(auth, "rt", "build-publish", cmd);
}
@@ -328,7 +328,7 @@ int jfrog_cli_rt_download(struct JFRT_Auth *auth, struct JFRT_Download *ctx, cha
return -1;
}
- snprintf(cmd, sizeof(cmd) - 1, "%s '%s' '%s'", args, repo_path, dest ? dest : "");
+ snprintf(cmd, sizeof(cmd), "%s '%s' '%s'", args, repo_path, dest ? dest : "");
guard_free(args);
guard_strlist_free(&arg_map);
@@ -418,7 +418,7 @@ int jfrog_cli_rt_upload(struct JFRT_Auth *auth, struct JFRT_Upload *ctx, char *s
pushd(new_src);
}
- snprintf(cmd, sizeof(cmd) - 1, "%s '%s' \"%s\"", args, src, repo_path);
+ snprintf(cmd, sizeof(cmd), "%s '%s' \"%s\"", args, src, repo_path);
guard_free(args);
guard_strlist_free(&arg_map);
@@ -477,7 +477,7 @@ int jfrog_cli_rt_search(struct JFRT_Auth *auth, struct JFRT_Search *ctx, char *r
return -1;
}
- snprintf(cmd, sizeof(cmd) - 1, "%s '%s/%s'", args, repo_path, pattern ? pattern: "");
+ snprintf(cmd, sizeof(cmd), "%s '%s/%s'", args, repo_path, pattern ? pattern: "");
guard_free(args);
guard_strlist_free(&arg_map);
diff --git a/src/lib/core/conda.c b/src/lib/core/conda.c
index a12bdee..90c6ba1 100644
--- a/src/lib/core/conda.c
+++ b/src/lib/core/conda.c
@@ -177,15 +177,15 @@ int pkg_index_provides(int mode, const char *index, const char *spec) {
// The --force argument ignores local installation and cache, and actually polls the remote index(es)
strncpy(cmd, "python -m pip install --force --dry-run --no-cache --no-deps ", sizeof(cmd) - 1);
if (index) {
- snprintf(cmd + strlen(cmd), (sizeof(cmd) - 1) - strlen(cmd), "--index-url='%s' ", index);
+ snprintf(cmd + strlen(cmd), sizeof(cmd) - strlen(cmd), "--index-url='%s' ", index);
}
- snprintf(cmd + strlen(cmd), (sizeof(cmd) - 1) - strlen(cmd), "'%s' ", spec_local);
+ snprintf(cmd + strlen(cmd), sizeof(cmd) - strlen(cmd), "'%s' ", spec_local);
} else if (mode == PKG_USE_CONDA) {
strncpy(cmd, "mamba search ", sizeof(cmd) - 1);
if (index) {
- snprintf(cmd + strlen(cmd), (sizeof(cmd) - 1) - strlen(cmd), "--channel '%s' ", index);
+ snprintf(cmd + strlen(cmd), sizeof(cmd) - strlen(cmd), "--channel '%s' ", index);
}
- snprintf(cmd + strlen(cmd), (sizeof(cmd) - 1) - strlen(cmd), "'%s' ", spec_local);
+ snprintf(cmd + strlen(cmd), sizeof(cmd) - strlen(cmd), "'%s' ", spec_local);
} else {
return PKG_INDEX_PROVIDES_E_INTERNAL_MODE_UNKNOWN;
}
diff --git a/src/lib/core/docker.c b/src/lib/core/docker.c
index 37ef48d..52599d3 100644
--- a/src/lib/core/docker.c
+++ b/src/lib/core/docker.c
@@ -7,7 +7,7 @@ int docker_exec(const char *args, const unsigned flags) {
memset(&proc, 0, sizeof(proc));
memset(cmd, 0, sizeof(cmd));
- snprintf(cmd, sizeof(cmd) - 1, "docker %s", args);
+ snprintf(cmd, sizeof(cmd), "docker %s", args);
unsigned final_flags = 0;
if (flags & STASIS_DOCKER_QUIET) {
@@ -36,7 +36,7 @@ int docker_script(const char *image, char *args, char *data, const unsigned flag
(void)flags; // TODO: placeholder
char cmd[PATH_MAX] = {0};
- snprintf(cmd, sizeof(cmd) - 1, "docker run -i %s \"%s\" /bin/sh -", args ? args : "", image);
+ snprintf(cmd, sizeof(cmd), "docker run -i %s \"%s\" /bin/sh -", args ? args : "", image);
FILE *outfile = popen(cmd, "w");
if (!outfile) {
diff --git a/src/lib/core/multiprocessing.c b/src/lib/core/multiprocessing.c
index 2bf33dd..92970f0 100644
--- a/src/lib/core/multiprocessing.c
+++ b/src/lib/core/multiprocessing.c
@@ -363,7 +363,7 @@ int mp_pool_join(struct MultiProcessingPool *pool, size_t jobs, size_t flags) {
char progress[1024] = {0};
const double percent = ((double) (tasks_complete + 1) / (double) pool->num_used) * 100;
- snprintf(progress, sizeof(progress) - 1, "[%s:%s] [%3.1f%%]", pool->ident, slot->ident, percent);
+ snprintf(progress, sizeof(progress), "[%s:%s] [%3.1f%%]", pool->ident, slot->ident, percent);
int task_timed_out = false;
if (slot->timeout) {
diff --git a/src/lib/core/utils.c b/src/lib/core/utils.c
index 16f9dbe..f65a1d8 100644
--- a/src/lib/core/utils.c
+++ b/src/lib/core/utils.c
@@ -601,7 +601,7 @@ int xml_pretty_print_in_place(const char *filename, const char *pretty_print_pro
return 0;
}
memset(cmd, 0, sizeof(cmd));
- snprintf(cmd, sizeof(cmd) - 1, "%s %s %s", pretty_print_prog, pretty_print_args, filename);
+ snprintf(cmd, sizeof(cmd), "%s %s %s", pretty_print_prog, pretty_print_args, filename);
result = shell_output(cmd, &status);
if (status || !result) {
goto pretty_print_failed;
@@ -950,7 +950,7 @@ void debug_hexdump(char *data, int len) {
const char *ascii_fmt = "%c";
// no need to calculate length for a single character
- snprintf(ascii + strlen(ascii), sizeof(ascii) - 1, ascii_fmt, isprint(*pos) ? *pos : '.');
+ snprintf(ascii + strlen(ascii), sizeof(ascii) - strlen(ascii), ascii_fmt, isprint(*pos) ? *pos : '.');
pos++;
count++;