The patch titled cgroup: do not use dprintf in cgroup_event_listener has been added to the -mm tree. Its filename is cgroups-add-simple-listener-of-cgroup-events-to-documentation-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: cgroup: do not use dprintf in cgroup_event_listener From: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx> glibc's dprintf(3) is buggy: http://sourceware.org/bugzilla/show_bug.cgi?id=11319 Let's not to use it in the example. Signed-off-by: Kirill A. Shutemov <kirill@xxxxxxxxxxxxx> Reviewed-by: Li Zefan <lizf@xxxxxxxxxxxxxx> Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> Cc: Paul Menage <menage@xxxxxxxxxx> Cc: Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> Cc: Pavel Emelyanov <xemul@xxxxxxxxxx> Cc: Dan Malek <dan@xxxxxxxxxxxxxxxxx> Cc: Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- Documentation/cgroups/cgroup_event_listener.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff -puN Documentation/cgroups/cgroup_event_listener.c~cgroups-add-simple-listener-of-cgroup-events-to-documentation-fix Documentation/cgroups/cgroup_event_listener.c --- a/Documentation/cgroups/cgroup_event_listener.c~cgroups-add-simple-listener-of-cgroup-events-to-documentation-fix +++ a/Documentation/cgroups/cgroup_event_listener.c @@ -23,6 +23,7 @@ int main(int argc, char **argv) int cfd = -1; int event_control = -1; char event_control_path[PATH_MAX]; + char line[LINE_MAX]; int ret; if (argc != 3) { @@ -39,7 +40,7 @@ int main(int argc, char **argv) ret = snprintf(event_control_path, PATH_MAX, "%s/cgroup.event_control", dirname(argv[1])); - if (ret > PATH_MAX) { + if (ret >= PATH_MAX) { fputs("Path to cgroup.event_control is too long\n", stderr); goto out; } @@ -57,7 +58,13 @@ int main(int argc, char **argv) goto out; } - ret = dprintf(event_control, "%d %d %s", efd, cfd, argv[2]); + ret = snprintf(line, LINE_MAX, "%d %d %s", efd, cfd, argv[2]); + if (ret >= LINE_MAX) { + fputs("Arguments string is too long\n", stderr); + goto out; + } + + ret = write(event_control, line, strlen(line) + 1); if (ret == -1) { perror("Cannot write to cgroup.event_control"); goto out; _ Patches currently in -mm which might be from kirill@xxxxxxxxxxxxx are cgroups-fix-contents-in-cgroups-documentation.patch cgroup-implement-eventfd-based-generic-api-for-notifications.patch cgroup-implement-eventfd-based-generic-api-for-notifications-kconfig-fix.patch cgroup-implement-eventfd-based-generic-api-for-notifications-fixes.patch cgroup-implement-eventfd-based-generic-api-for-notifications-fixes-fix.patch memcg-extract-mem_group_usage-from-mem_cgroup_read.patch memcg-rework-usage-of-stats-by-soft-limit.patch memcg-implement-memory-thresholds.patch memcg-implement-memory-thresholds-checkpatch-fixes.patch memcg-implement-memory-thresholds-checkpatch-fixes-fix.patch memcg-implement-memory-thresholds-check-if-first-threshold-crossed.patch memcg-typo-in-comment-to-mem_cgroup_print_oom_info.patch memcg-update-threshold-and-softlimit-at-commit-v2.patch memcg-share-event-counter-rather-than-duplicate-v2.patch memcg-update-memcg_testtxt.patch cgroups-fix-race-between-userspace-and-kernelspace.patch cgroups-remove-events-before-destroying-subsystem-state-objects.patch cgroups-add-simple-listener-of-cgroup-events-to-documentation.patch cgroups-add-simple-listener-of-cgroup-events-to-documentation-fix.patch memcg-update-memcg_testtxt-to-describe-memory-thresholds.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html