aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-11-01 00:41:19 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-11-01 00:48:06 -0400
commit18a5252729ace3eae1b9291dbc71dc0d4e9b6580 (patch)
tree26e4580d283ca314110c0d6ce68357256fff8a59
parent6db1b15b5c62d6fb52825c1d833ac8dfa9a49fbb (diff)
downloadstasis-18a5252729ace3eae1b9291dbc71dc0d4e9b6580.tar.gz
Replace initialize character arrays using {0} instead of memset
-rw-r--r--src/cli/stasis_indexer/stasis_indexer.c2
-rw-r--r--src/lib/core/artifactory.c29
-rw-r--r--src/lib/core/conda.c18
-rw-r--r--src/lib/core/copy.c5
-rw-r--r--src/lib/core/delivery.c3
-rw-r--r--src/lib/core/delivery_artifactory.c7
-rw-r--r--src/lib/core/delivery_docker.c6
-rw-r--r--src/lib/core/delivery_postprocess.c8
-rw-r--r--src/lib/core/delivery_test.c3
-rw-r--r--src/lib/core/docker.c18
-rw-r--r--src/lib/core/environment.c8
-rw-r--r--src/lib/core/ini.c3
-rw-r--r--src/lib/core/recipe.c3
-rw-r--r--src/lib/core/relocation.c2
-rw-r--r--src/lib/core/utils.c4
15 files changed, 41 insertions, 78 deletions
diff --git a/src/cli/stasis_indexer/stasis_indexer.c b/src/cli/stasis_indexer/stasis_indexer.c
index bd59920..c012778 100644
--- a/src/cli/stasis_indexer/stasis_indexer.c
+++ b/src/cli/stasis_indexer/stasis_indexer.c
@@ -31,7 +31,7 @@ static void usage(char *name) {
guard_free(opts);
for (int i = 0; i < maxopts - 1; i++) {
- char line[255];
+ char line[255] = {0};
sprintf(line, " --%s -%c %-20s", long_options[i].name, long_options[i].val, long_options_help[i]);
puts(line);
}
diff --git a/src/lib/core/artifactory.c b/src/lib/core/artifactory.c
index 6b9635d..58759b3 100644
--- a/src/lib/core/artifactory.c
+++ b/src/lib/core/artifactory.c
@@ -1,7 +1,5 @@
#include "artifactory.h"
-extern struct STASIS_GLOBAL globals;
-
int artifactory_download_cli(char *dest,
char *jfrog_artifactory_base_url,
char *jfrog_artifactory_product,
@@ -73,8 +71,7 @@ int artifactory_download_cli(char *dest,
}
void jfrt_register_opt_str(char *jfrt_val, const char *opt_name, struct StrList **opt_map) {
- char data[STASIS_BUFSIZ];
- memset(data, 0, sizeof(data));
+ char data[STASIS_BUFSIZ] = {0};
if (jfrt_val == NULL) {
// no data
@@ -85,8 +82,7 @@ void jfrt_register_opt_str(char *jfrt_val, const char *opt_name, struct StrList
}
void jfrt_register_opt_bool(bool jfrt_val, const char *opt_name, struct StrList **opt_map) {
- char data[STASIS_BUFSIZ];
- memset(data, 0, sizeof(data));
+ char data[STASIS_BUFSIZ] = {0};
if (jfrt_val == false) {
// option will not be used
@@ -97,8 +93,7 @@ void jfrt_register_opt_bool(bool jfrt_val, const char *opt_name, struct StrList
}
void jfrt_register_opt_int(int jfrt_val, const char *opt_name, struct StrList **opt_map) {
- char data[STASIS_BUFSIZ];
- memset(data, 0, sizeof(data));
+ char data[STASIS_BUFSIZ] = {0};
if (jfrt_val == 0) {
// option will not be used
@@ -109,8 +104,7 @@ void jfrt_register_opt_int(int jfrt_val, const char *opt_name, struct StrList **
}
void jfrt_register_opt_long(long jfrt_val, const char *opt_name, struct StrList **opt_map) {
- char data[STASIS_BUFSIZ];
- memset(data, 0, sizeof(data));
+ char data[STASIS_BUFSIZ] = {0};
if (jfrt_val == 0) {
// option will not be used
@@ -260,15 +254,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];
- memset(cmd, 0, sizeof(cmd));
+ char cmd[STASIS_BUFSIZ] = {0};
snprintf(cmd, sizeof(cmd) - 1, "\"%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];
- memset(cmd, 0, sizeof(cmd));
+ char cmd[STASIS_BUFSIZ] = {0};
snprintf(cmd, sizeof(cmd) - 1, "\"%s\" \"%s\"", build_name, build_number);
return jfrog_cli(auth, "rt", "build-publish", cmd);
}
@@ -278,8 +270,7 @@ int jfrog_cli_rt_ping(struct JFRT_Auth *auth) {
}
int jfrog_cli_rt_download(struct JFRT_Auth *auth, struct JFRT_Download *ctx, char *repo_path, char *dest) {
- char cmd[STASIS_BUFSIZ];
- memset(cmd, 0, sizeof(cmd));
+ char cmd[STASIS_BUFSIZ] = {0};
if (isempty(repo_path)) {
fprintf(stderr, "repo_path argument must be a valid artifactory repository path\n");
@@ -345,8 +336,7 @@ int jfrog_cli_rt_download(struct JFRT_Auth *auth, struct JFRT_Download *ctx, cha
}
int jfrog_cli_rt_upload(struct JFRT_Auth *auth, struct JFRT_Upload *ctx, char *src, char *repo_path) {
- char cmd[STASIS_BUFSIZ];
- memset(cmd, 0, sizeof(cmd));
+ char cmd[STASIS_BUFSIZ] = {0};
if (isempty(src)) {
fprintf(stderr, "src argument must be a valid file system path\n");
@@ -444,8 +434,7 @@ int jfrog_cli_rt_upload(struct JFRT_Auth *auth, struct JFRT_Upload *ctx, char *s
}
int jfrog_cli_rt_search(struct JFRT_Auth *auth, struct JFRT_Search *ctx, char *repo_path, char *pattern) {
- char cmd[STASIS_BUFSIZ];
- memset(cmd, 0, sizeof(cmd));
+ char cmd[STASIS_BUFSIZ] = {0};
if (isempty(repo_path)) {
fprintf(stderr, "repo_path argument must be a valid artifactory repository path\n");
diff --git a/src/lib/core/conda.c b/src/lib/core/conda.c
index 5954f20..fa3052a 100644
--- a/src/lib/core/conda.c
+++ b/src/lib/core/conda.c
@@ -40,8 +40,7 @@ int micromamba(struct MicromambaInfo *info, char *command, ...) {
}
}
- char cmd[STASIS_BUFSIZ];
- memset(cmd, 0, sizeof(cmd));
+ char cmd[STASIS_BUFSIZ] = {0};
sprintf(cmd, "%s -r %s -p %s ", mmbin, info->conda_prefix, info->conda_prefix);
va_list args;
va_start(args, command);
@@ -63,16 +62,14 @@ int micromamba(struct MicromambaInfo *info, char *command, ...) {
}
int python_exec(const char *args) {
- char command[PATH_MAX];
- memset(command, 0, sizeof(command));
+ char command[PATH_MAX] = {0};
snprintf(command, sizeof(command) - 1, "python %s", args);
msg(STASIS_MSG_L3, "Executing: %s\n", command);
return system(command);
}
int pip_exec(const char *args) {
- char command[PATH_MAX];
- memset(command, 0, sizeof(command));
+ char command[PATH_MAX] = {0};
snprintf(command, sizeof(command) - 1, "python -m pip %s", args);
msg(STASIS_MSG_L3, "Executing: %s\n", command);
return system(command);
@@ -116,8 +113,7 @@ int pkg_index_provides(int mode, const char *index, const char *spec) {
}
int status = 0;
- struct Process proc;
- memset(&proc, 0, sizeof(proc));
+ struct Process proc = {0};
proc.redirect_stderr = 1;
strcpy(proc.f_stdout, logfile);
@@ -196,8 +192,7 @@ int conda_exec(const char *args) {
"deactivate",
NULL
};
- char conda_as[6];
- memset(conda_as, 0, sizeof(conda_as));
+ char conda_as[6] = {0};
strcpy(conda_as, "conda");
for (size_t i = 0; mamba_commands[i] != NULL; i++) {
@@ -219,8 +214,7 @@ int conda_activate(const char *root, const char *env_name) {
char path_conda[PATH_MAX] = {0};
char path_mamba[PATH_MAX] = {0};
char logfile[PATH_MAX] = {0};
- struct Process proc;
- memset(&proc, 0, sizeof(proc));
+ struct Process proc = {0};
// Where to find conda's init scripts
sprintf(path_conda, "%s%s", root, init_script_conda);
diff --git a/src/lib/core/copy.c b/src/lib/core/copy.c
index f69a756..a1158e2 100644
--- a/src/lib/core/copy.c
+++ b/src/lib/core/copy.c
@@ -3,7 +3,6 @@
int copy2(const char *src, const char *dest, unsigned int op) {
size_t bytes_read;
size_t bytes_written;
- char buf[STASIS_BUFSIZ];
struct stat src_stat, dnamest;
FILE *fp1, *fp2;
@@ -47,7 +46,9 @@ int copy2(const char *src, const char *dest, unsigned int op) {
return -1;
}
} else if (S_ISREG(src_stat.st_mode)) {
- fp1 = fopen(src, "rb");
+ char buf[STASIS_BUFSIZ] = {0};
+ size_t bytes_read;
+ FILE *fp1 = fopen(src, "rb");
if (!fp1) {
perror(src);
return -1;
diff --git a/src/lib/core/delivery.c b/src/lib/core/delivery.c
index ada708d..1ceb8b7 100644
--- a/src/lib/core/delivery.c
+++ b/src/lib/core/delivery.c
@@ -165,9 +165,6 @@ void delivery_defer_packages(struct Delivery *ctx, int type) {
struct StrList *dataptr = NULL;
struct StrList *deferred = NULL;
char *name = NULL;
- char cmd[PATH_MAX];
-
- memset(cmd, 0, sizeof(cmd));
char mode[10];
if (DEFER_CONDA == type) {
diff --git a/src/lib/core/delivery_artifactory.c b/src/lib/core/delivery_artifactory.c
index 27f4823..a659c73 100644
--- a/src/lib/core/delivery_artifactory.c
+++ b/src/lib/core/delivery_artifactory.c
@@ -75,9 +75,6 @@ int delivery_artifact_upload(struct Delivery *ctx) {
ctx->deploy.jfrog[i].upload_ctx.build_name = ctx->info.build_name;
ctx->deploy.jfrog[i].upload_ctx.build_number = ctx->info.build_number;
- char files[PATH_MAX];
- char dest[PATH_MAX]; // repo + remote dir
-
if (jfrog_cli_rt_ping(&ctx->deploy.jfrog_auth)) {
msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Unable to contact artifactory server: %s\n", ctx->deploy.jfrog_auth.url);
return -1;
@@ -85,8 +82,8 @@ int delivery_artifact_upload(struct Delivery *ctx) {
if (strlist_count(ctx->deploy.jfrog[i].files)) {
for (size_t f = 0; f < strlist_count(ctx->deploy.jfrog[i].files); f++) {
- memset(dest, 0, sizeof(dest));
- memset(files, 0, sizeof(files));
+ char dest[PATH_MAX] = {0};
+ char files[PATH_MAX] = {0};
snprintf(dest, sizeof(dest) - 1, "%s/%s", ctx->deploy.jfrog[i].repo, ctx->deploy.jfrog[i].dest);
snprintf(files, sizeof(files) - 1, "%s", strlist_item(ctx->deploy.jfrog[i].files, f));
status += jfrog_cli_rt_upload(&ctx->deploy.jfrog_auth, &ctx->deploy.jfrog[i].upload_ctx, files, dest);
diff --git a/src/lib/core/delivery_docker.c b/src/lib/core/delivery_docker.c
index e1d7f60..32abe48 100644
--- a/src/lib/core/delivery_docker.c
+++ b/src/lib/core/delivery_docker.c
@@ -59,9 +59,9 @@ int delivery_docker(struct Delivery *ctx) {
}
// Build the image
- char delivery_file[PATH_MAX];
- char dest[PATH_MAX];
- char rsync_cmd[PATH_MAX * 2];
+ char delivery_file[PATH_MAX] = {0};
+ char dest[PATH_MAX] = {0};
+ char rsync_cmd[PATH_MAX * 2] = {0};
memset(delivery_file, 0, sizeof(delivery_file));
memset(dest, 0, sizeof(dest));
diff --git a/src/lib/core/delivery_postprocess.c b/src/lib/core/delivery_postprocess.c
index 1a902e3..3404c9f 100644
--- a/src/lib/core/delivery_postprocess.c
+++ b/src/lib/core/delivery_postprocess.c
@@ -62,7 +62,6 @@ int delivery_dump_metadata(struct Delivery *ctx) {
}
void delivery_rewrite_spec(struct Delivery *ctx, char *filename, unsigned stage) {
- char output[PATH_MAX];
char *header = NULL;
char *tempfile = NULL;
FILE *tp = NULL;
@@ -129,6 +128,7 @@ void delivery_rewrite_spec(struct Delivery *ctx, char *filename, unsigned stage)
remove(tempfile);
guard_free(tempfile);
} else if (globals.enable_rewrite_spec_stage_2 && stage == DELIVERY_REWRITE_SPEC_STAGE_2) {
+ char output[PATH_MAX] = {0];
// Replace "local" channel with the staging URL
if (ctx->storage.conda_staging_url) {
file_replace_text(filename, "@CONDA_CHANNEL@", ctx->storage.conda_staging_url, 0);
@@ -183,8 +183,7 @@ int delivery_index_conda_artifacts(struct Delivery *ctx) {
}
int delivery_copy_wheel_artifacts(struct Delivery *ctx) {
- char cmd[PATH_MAX];
- memset(cmd, 0, sizeof(cmd));
+ char cmd[PATH_MAX] = {0};
snprintf(cmd, sizeof(cmd) - 1, "rsync -avi --progress %s/*/dist/*.whl %s",
ctx->storage.build_sources_dir,
ctx->storage.wheel_artifact_dir);
@@ -234,8 +233,7 @@ int delivery_index_wheel_artifacts(struct Delivery *ctx) {
// Add record to top level index
fprintf(top_fp, "<a href=\"%s/\">%s</a><br/>\n", rec->d_name, rec->d_name);
- char dpath[PATH_MAX * 2];
- memset(dpath, 0, sizeof(dpath));
+ char dpath[PATH_MAX * 2] = {0};
sprintf(dpath, "%s/%s", ctx->storage.wheel_artifact_dir, rec->d_name);
struct StrList *packages = listdir(dpath);
if (!packages) {
diff --git a/src/lib/core/delivery_test.c b/src/lib/core/delivery_test.c
index cb78f64..22d2df5 100644
--- a/src/lib/core/delivery_test.c
+++ b/src/lib/core/delivery_test.c
@@ -275,8 +275,7 @@ int delivery_fixup_test_results(struct Delivery *ctx) {
}
while ((rec = readdir(dp)) != NULL) {
- char path[PATH_MAX];
- memset(path, 0, sizeof(path));
+ char path[PATH_MAX] = {0};
if (!strcmp(rec->d_name, ".") || !strcmp(rec->d_name, "..") || !endswith(rec->d_name, ".xml")) {
continue;
diff --git a/src/lib/core/docker.c b/src/lib/core/docker.c
index 5834ef9..c27708e 100644
--- a/src/lib/core/docker.c
+++ b/src/lib/core/docker.c
@@ -21,12 +21,8 @@ int docker_exec(const char *args, unsigned flags) {
int docker_script(const char *image, char *data, unsigned flags) {
(void)flags; // TODO: placeholder
- FILE *infile;
- FILE *outfile;
- char cmd[PATH_MAX];
- char buffer[STASIS_BUFSIZ];
+ char cmd[PATH_MAX] = {0};
- memset(cmd, 0, sizeof(cmd));
snprintf(cmd, sizeof(cmd) - 1, "docker run --rm -i %s /bin/sh -", image);
outfile = popen(cmd, "w");
@@ -42,7 +38,7 @@ int docker_script(const char *image, char *data, unsigned flags) {
}
do {
- memset(buffer, 0, sizeof(buffer));
+ char buffer[STASIS_BUFSIZ] = {0};
if (fgets(buffer, sizeof(buffer) - 1, infile) != NULL) {
fputs(buffer, outfile);
}
@@ -54,9 +50,8 @@ int docker_script(const char *image, char *data, unsigned flags) {
int docker_build(const char *dirpath, const char *args, int engine) {
char cmd[PATH_MAX];
- char build[15];
+ char build[15] = {0};
- memset(build, 0, sizeof(build));
memset(cmd, 0, sizeof(cmd));
if (engine & STASIS_DOCKER_BUILD) {
@@ -70,13 +65,10 @@ int docker_build(const char *dirpath, const char *args, int engine) {
}
int docker_save(const char *image, const char *destdir, const char *compression_program) {
- char cmd[PATH_MAX];
-
- memset(cmd, 0, sizeof(cmd));
+ char cmd[PATH_MAX] = {0};
if (compression_program && strlen(compression_program)) {
- char ext[255];
- memset(ext, 0, sizeof(ext));
+ char ext[255] = {0};
if (startswith(compression_program, "zstd")) {
strcpy(ext, "zst");
} else if (startswith(compression_program, "xz")) {
diff --git a/src/lib/core/environment.c b/src/lib/core/environment.c
index 580062c..d52cb2e 100644
--- a/src/lib/core/environment.c
+++ b/src/lib/core/environment.c
@@ -93,6 +93,7 @@ void runtime_export(RuntimeEnv *env, char **keys) {
}
for (size_t i = 0; i < strlist_count(env); i++) {
+ char output[STASIS_BUFSIZ] = {0};
char **pair = split(strlist_item(env, i), "=", 0);
char *key = pair[0];
char *value = NULL;
@@ -297,10 +298,9 @@ char *runtime_expand_var(RuntimeEnv *env, char *input) {
}
// Parse the input string
- size_t i;
- for (i = 0; i < strlen(input); i++) {
- char var[MAXNAMLEN]; // environment variable name
- memset(var, '\0', MAXNAMLEN); // zero out name
+ for (size_t i = 0; i < strlen(input); i++) {
+ const char *delim_literal = "$$";
+ char var[MAXNAMLEN] = {0}; // environment variable name
// Handle literal statement "$$var"
// Value becomes "$var" (unexpanded)
diff --git a/src/lib/core/ini.c b/src/lib/core/ini.c
index d44e1cc..15a92f2 100644
--- a/src/lib/core/ini.c
+++ b/src/lib/core/ini.c
@@ -550,9 +550,8 @@ struct INIFILE *ini_open(const char *filename) {
char inikey[2][255];
char *key = inikey[0];
char *key_last = inikey[1];
- char value[STASIS_BUFSIZ];
+ char value[STASIS_BUFSIZ] = {0};
- memset(value, 0, sizeof(value));
memset(inikey, 0, sizeof(inikey));
// Read file
diff --git a/src/lib/core/recipe.c b/src/lib/core/recipe.c
index 833908c..4a89bea 100644
--- a/src/lib/core/recipe.c
+++ b/src/lib/core/recipe.c
@@ -36,8 +36,6 @@ int recipe_clone(char *recipe_dir, char *url, char *gitref, char **result) {
int recipe_get_type(char *repopath) {
- int result;
- char path[PATH_MAX];
// conda-forge is a collection of repositories
// "conda-forge.yml" is guaranteed to exist
const char *marker[] = {
@@ -53,6 +51,7 @@ int recipe_get_type(char *repopath) {
};
for (size_t i = 0; marker[i] != NULL; i++) {
+ char path[PATH_MAX] = {0};
sprintf(path, "%s/%s", repopath, marker[i]);
result = access(path, F_OK);
if (!result) {
diff --git a/src/lib/core/relocation.c b/src/lib/core/relocation.c
index 852aca4..d857ed9 100644
--- a/src/lib/core/relocation.c
+++ b/src/lib/core/relocation.c
@@ -24,7 +24,7 @@
* @return 0 on success, -1 on error
*/
int replace_text(char *original, const char *target, const char *replacement, unsigned flags) {
- char buffer[STASIS_BUFSIZ];
+ char buffer[STASIS_BUFSIZ] = {0};
char *pos = original;
char *match = NULL;
size_t original_len = strlen(original);
diff --git a/src/lib/core/utils.c b/src/lib/core/utils.c
index 89950df..87d34ef 100644
--- a/src/lib/core/utils.c
+++ b/src/lib/core/utils.c
@@ -346,10 +346,8 @@ int git_clone(struct Process *proc, char *url, char *destdir, char *gitref) {
char *git_describe(const char *path) {
- static char version[NAME_MAX];
- FILE *pp;
+ static char version[NAME_MAX] = {0};
- memset(version, 0, sizeof(version));
if (pushd(path)) {
return NULL;
}