Hi,

I tested 'cgred' service and I saw the problem that some processes
are not moved to a right cgroup. This problem did not occur always,
and it did sometimes. I reviewed cgrulesengd.c and found the bug
cgrulesengd stays in an infinite loop if receiving a NLMSG_NOOP
packet.

This patch fixes this problem.


Thanks
Ken'ichi Ohmichi

Signed-off-by: Ken'ichi Ohmichi <[email protected]>
---
--- a/src/daemon/cgrulesengd.c  2009-04-01 14:59:19.000000000 +0900
+++ b/src/daemon/cgrulesengd.c  2009-04-07 13:57:59.000000000 +0900
@@ -386,8 +386,10 @@ int cgre_create_netlink_socket_process_m
                        continue;
                while (NLMSG_OK(nlh, recv_len)) {
                        cn_hdr = NLMSG_DATA(nlh);
-                       if (nlh->nlmsg_type == NLMSG_NOOP)
+                       if (nlh->nlmsg_type == NLMSG_NOOP) {
+                               nlh = NLMSG_NEXT(nlh, recv_len);
                                continue;
+                       }
                        if ((nlh->nlmsg_type == NLMSG_ERROR) ||
                                        (nlh->nlmsg_type == NLMSG_OVERRUN))
                                break;

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Libcg-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel

Reply via email to