diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-11-01 00:41:19 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-11-01 00:48:06 -0400 |
commit | 18a5252729ace3eae1b9291dbc71dc0d4e9b6580 (patch) | |
tree | 26e4580d283ca314110c0d6ce68357256fff8a59 | |
parent | 6db1b15b5c62d6fb52825c1d833ac8dfa9a49fbb (diff) | |
download | stasis-18a5252729ace3eae1b9291dbc71dc0d4e9b6580.tar.gz |
Replace initialize character arrays using {0} instead of memset
-rw-r--r-- | src/cli/stasis_indexer/stasis_indexer.c | 2 | ||||
-rw-r--r-- | src/lib/core/artifactory.c | 29 | ||||
-rw-r--r-- | src/lib/core/conda.c | 18 | ||||
-rw-r--r-- | src/lib/core/copy.c | 5 | ||||
-rw-r--r-- | src/lib/core/delivery.c | 3 | ||||
-rw-r--r-- | src/lib/core/delivery_artifactory.c | 7 | ||||
-rw-r--r-- | src/lib/core/delivery_docker.c | 6 | ||||
-rw-r--r-- | src/lib/core/delivery_postprocess.c | 8 | ||||
-rw-r--r-- | src/lib/core/delivery_test.c | 3 | ||||
-rw-r--r-- | src/lib/core/docker.c | 18 | ||||
-rw-r--r-- | src/lib/core/environment.c | 8 | ||||
-rw-r--r-- | src/lib/core/ini.c | 3 | ||||
-rw-r--r-- | src/lib/core/recipe.c | 3 | ||||
-rw-r--r-- | src/lib/core/relocation.c | 2 | ||||
-rw-r--r-- | src/lib/core/utils.c | 4 |
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; } |