diff options
Diffstat (limited to 'src/basic')
-rw-r--r-- | src/basic/calendarspec.c | 8 | ||||
-rw-r--r-- | src/basic/fileio.c | 10 | ||||
-rw-r--r-- | src/basic/unit-name.c | 9 |
3 files changed, 10 insertions, 17 deletions
diff --git a/src/basic/calendarspec.c b/src/basic/calendarspec.c index 2fde3e107e..2dcc9c5575 100644 --- a/src/basic/calendarspec.c +++ b/src/basic/calendarspec.c @@ -253,6 +253,7 @@ int calendar_spec_to_string(const CalendarSpec *c, char **p) { char *buf = NULL; size_t sz = 0; FILE *f; + int r; assert(c); assert(p); @@ -278,12 +279,11 @@ int calendar_spec_to_string(const CalendarSpec *c, char **p) { fputc(':', f); format_chain(f, 2, c->second); - fflush(f); - - if (ferror(f)) { + r = fflush_and_check(f); + if (r < 0) { free(buf); fclose(f); - return -ENOMEM; + return r; } fclose(f); diff --git a/src/basic/fileio.c b/src/basic/fileio.c index 2216853777..4a9105f421 100644 --- a/src/basic/fileio.c +++ b/src/basic/fileio.c @@ -28,21 +28,15 @@ #include "fileio.h" int write_string_stream(FILE *f, const char *line, bool enforce_newline) { + assert(f); assert(line); - errno = 0; - fputs(line, f); if (enforce_newline && !endswith(line, "\n")) fputc('\n', f); - fflush(f); - - if (ferror(f)) - return errno ? -errno : -EIO; - - return 0; + return fflush_and_check(f); } static int write_string_file_atomic(const char *fn, const char *line, bool enforce_newline) { diff --git a/src/basic/unit-name.c b/src/basic/unit-name.c index bf52463d81..4b84542d0c 100644 --- a/src/basic/unit-name.c +++ b/src/basic/unit-name.c @@ -673,6 +673,7 @@ int unit_name_mangle_with_suffix(const char *name, UnitNameMangle allow_globs, c int slice_build_parent_slice(const char *slice, char **ret) { char *s, *dash; + int r; assert(slice); assert(ret); @@ -693,11 +694,9 @@ int slice_build_parent_slice(const char *slice, char **ret) { if (dash) strcpy(dash, ".slice"); else { - free(s); - - s = strdup("-.slice"); - if (!s) - return -ENOMEM; + r = free_and_strdup(&s, "-.slice"); + if (r < 0) + return r; } *ret = s; |