From: Christian Brauner Date: Sun, 29 Apr 2018 14:56:58 +0000 (+0200) Subject: lxccontainer: non-functional changes X-Git-Tag: lxc-2.0.10~159 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eee2c6a01c111465b2e9dcaf670c83a7d1e6ba64;p=thirdparty%2Flxc.git lxccontainer: non-functional changes Signed-off-by: Christian Brauner --- diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index 629ddb02e..27e074327 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -1480,6 +1480,7 @@ static bool create_run_template(struct lxc_container *c, char *tpath, bool need_ static bool prepend_lxc_header(char *path, const char *t, char *const argv[]) { long flen; + size_t len; char *contents; FILE *f; int ret = -1; @@ -1493,15 +1494,30 @@ static bool prepend_lxc_header(char *path, const char *t, char *const argv[]) if (f == NULL) return false; - if (fseek(f, 0, SEEK_END) < 0) + ret = fseek(f, 0, SEEK_END); + if (ret < 0) goto out_error; - if ((flen = ftell(f)) < 0) + + ret = -1; + flen = ftell(f); + if (flen < 0) goto out_error; - if (fseek(f, 0, SEEK_SET) < 0) + + ret = fseek(f, 0, SEEK_SET); + if (ret < 0) goto out_error; - if ((contents = malloc(flen + 1)) == NULL) + + ret = fseek(f, 0, SEEK_SET); + if (ret < 0) + goto out_error; + + ret = -1; + contents = malloc(flen + 1); + if (!contents) goto out_error; - if (fread(contents, 1, flen, f) != flen) + + len = fread(contents, 1, flen, f); + if (len != flen) goto out_free_contents; contents[flen] = '\0'; @@ -1513,25 +1529,25 @@ static bool prepend_lxc_header(char *path, const char *t, char *const argv[]) #if HAVE_LIBGNUTLS tpath = get_template_path(t); if (!tpath) { - ERROR("bad template: %s", t); + ERROR("Invalid template \"%s\" specified", t); goto out_free_contents; } ret = sha1sum_file(tpath, md_value); + free(tpath); if (ret < 0) { - ERROR("Error getting sha1sum of %s", tpath); - free(tpath); + ERROR("Failed to get sha1sum of %s", tpath); goto out_free_contents; } - free(tpath); #endif f = fopen(path, "w"); if (f == NULL) { - SYSERROR("reopening config for writing"); + SYSERROR("Reopening config for writing"); free(contents); return false; } + fprintf(f, "# Template used to create this container: %s\n", t); if (argv) { fprintf(f, "# Parameters passed to the template:"); @@ -1557,9 +1573,12 @@ static bool prepend_lxc_header(char *path, const char *t, char *const argv[]) fclose(f); return false; } + ret = 0; + out_free_contents: free(contents); + out_error: if (f) { int newret; @@ -1567,10 +1586,12 @@ out_error: if (ret == 0) ret = newret; } + if (ret < 0) { SYSERROR("Error prepending header"); return false; } + return true; }