From: Tom Hromatka Date: Tue, 23 Feb 2021 20:47:38 +0000 (-0700) Subject: api.c: Fix erroneous error handling in cgroup_set_values_recursive() X-Git-Tag: v2.0.rc1~12^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c38fa7e9a901e43a225975baa1bf3302d18324d3;p=thirdparty%2Flibcgroup.git api.c: Fix erroneous error handling in cgroup_set_values_recursive() Ignore the positive length returned by asprintf() and only act upon the error code returned from cg_set_control_value(). Previously cgroup_set_values_recursive() mishandled the error handling when the value's dirty flag was set. Reported-by: Bharani viswas Fixes: 092e4aeb0416f ("api.c: Refactor duplicate logic in cgroup modify and create") Signed-off-by: Tom Hromatka --- diff --git a/src/api.c b/src/api.c index 11855be2..51f9075f 100644 --- a/src/api.c +++ b/src/api.c @@ -1913,13 +1913,7 @@ STATIC int cgroup_set_values_recursive(const char * const base, free(path); path = NULL; - /* don't consider error in files directly written by - * the user as fatal */ - if (ret && !controller->values[j]->dirty) { - ret = 0; - continue; - } - if (ret) + if (error) goto err; controller->values[j]->dirty = false;