diff options
author | Lennart Poettering <lennart@poettering.net> | 2018-06-05 16:02:32 +0200 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2018-08-24 16:47:08 +0200 |
commit | e515de190d11d311f5de6153773100aef8d45964 (patch) | |
tree | 0ad088fdc2f56bae1dfb4587254b3bfa0d6687e8 /src/basic/capability-util.c | |
parent | 83e6d192cbe160dbea62427bab0f6f7d490ce215 (diff) |
util: add new write_string_filef() helper
This new helper combines asprintf() and write_string_file() in one,
which is useful at various places to shorten the code a bit.
Diffstat (limited to 'src/basic/capability-util.c')
-rw-r--r-- | src/basic/capability-util.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/basic/capability-util.c b/src/basic/capability-util.c index 4409482b6..911f62b35 100644 --- a/src/basic/capability-util.c +++ b/src/basic/capability-util.c @@ -231,10 +231,10 @@ finish: } static int drop_from_file(const char *fn, uint64_t keep) { - int r, k; - uint32_t hi, lo; + _cleanup_free_ char *p = NULL; uint64_t current, after; - char *p; + uint32_t hi, lo; + int r, k; r = read_one_line_file(fn, &p); if (r < 0) @@ -244,8 +244,6 @@ static int drop_from_file(const char *fn, uint64_t keep) { assert_cc(sizeof(lo) == sizeof(unsigned)); k = sscanf(p, "%u %u", &lo, &hi); - free(p); - if (k != 2) return -EIO; @@ -258,13 +256,7 @@ static int drop_from_file(const char *fn, uint64_t keep) { lo = (unsigned) (after & 0xFFFFFFFFULL); hi = (unsigned) ((after >> 32ULL) & 0xFFFFFFFFULL); - if (asprintf(&p, "%u %u", lo, hi) < 0) - return -ENOMEM; - - r = write_string_file(fn, p, WRITE_STRING_FILE_CREATE); - free(p); - - return r; + return write_string_filef(fn, WRITE_STRING_FILE_CREATE, "%u %u", lo, hi); } int capability_bounding_set_drop_usermode(uint64_t keep) { |