tree 80aff375f2b1de10a69743d73977df39f356dda5
parent d2287f844187158e5eddd0d5de8e95bd607abcb7
author Thomas Graf <[EMAIL PROTECTED]> Wed, 24 Aug 2005 00:12:44 -0700
committer David S. Miller <[EMAIL PROTECTED]> Wed, 24 Aug 2005 00:12:44 -0700

[PKT_SCHED]: Fix missing qdisc_destroy() in qdisc_create_dflt()

qdisc_create_dflt() is missing to destroy the newly allocated
default qdisc if the initialization fails resulting in leaks
of all kinds. The only caller in mainline which may trigger
this bug is sch_tbf.c in tbf_create_dflt_qdisc().

Note: qdisc_create_dflt() doesn't fulfill the official locking
      requirements of qdisc_destroy() but since the qdisc could
      never be seen by the outside world this doesn't matter
      and it can stay as-is until the locking of pkt_sched
      is cleaned up.

Signed-off-by: Thomas Graf <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>

 net/sched/sch_generic.c |    1 +
 1 files changed, 1 insertion(+)

diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -438,6 +438,7 @@ struct Qdisc * qdisc_create_dflt(struct 
        if (!ops->init || ops->init(sch, NULL) == 0)
                return sch;
+       qdisc_destroy(sch);
        return NULL;
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to