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: Github User bharani-viswas
Fixes: 092e4aeb0416f ("api.c: Refactor duplicate logic in cgroup modify and 
create")
Signed-off-by: Tom Hromatka <tom.hroma...@oracle.com>
---
 src/api.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/api.c b/src/api.c
index 11855be23314..51f9075f7595 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;
-- 
2.26.2



_______________________________________________
Libcg-devel mailing list
Libcg-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libcg-devel

Reply via email to