diff options
Diffstat (limited to 'src/lib')
| -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 | 
14 files changed, 40 insertions, 77 deletions
| 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;      } | 
