thanks will add tobi Today Sebastian Harl wrote:
> tags 529291 + upstream > thanks > > Hi Anders, > > On Mon, May 18, 2009 at 03:22:35PM +0200, Anders Hammarquist wrote: > > The python bindings for the calls rrd_info, rrd_graph_v and rrd_update_v > > do not properly release references to some objects that they allocate > > leading to memory leaks. Attacked is a patch to fix it. > > Thanks for reporting this and providing a patch. From my POV, the patch > looks fine, but I'm not into Python at all ;-) > > With this message, I've forwarded the patch upstream and I'll include it > in the next upload to Debian. Tobi, I think this patch should be > included in 1.3 - 1.2 is (quite obviously) not affected. > > > Index: trunk/bindings/python/rrdtoolmodule.c > > =================================================================== > > --- trunk/bindings/python/rrdtoolmodule.c (revision 1440) > > +++ trunk/bindings/python/rrdtoolmodule.c (working copy) > > @@ -435,6 +435,7 @@ > > } > > if (val) { > > PyDict_SetItemString(r, data->key, val); > > + Py_DECREF(val); > > } > > data = data->next; > > } > > @@ -459,10 +460,13 @@ > > if ((data = rrd_info(argc, argv)) == NULL) { > > PyErr_SetString(ErrorObject, rrd_get_error()); > > rrd_clear_error(); > > - return NULL; > > + r = NULL; > > + } else { > > + r = PyDict_FromInfo(data); > > + rrd_info_free(data); > > } > > - r = PyDict_FromInfo(data); > > - rrd_info_free(data); > > + > > + destroy_args(&argv); > > return r; > > } > > > > @@ -484,10 +488,13 @@ > > if ((data = rrd_graph_v(argc, argv)) == NULL) { > > PyErr_SetString(ErrorObject, rrd_get_error()); > > rrd_clear_error(); > > - return NULL; > > + r = NULL; > > + } else { > > + r = PyDict_FromInfo(data); > > + rrd_info_free(data); > > } > > - r = PyDict_FromInfo(data); > > - rrd_info_free(data); > > + > > + destroy_args(&argv); > > return r; > > } > > > > @@ -509,10 +516,13 @@ > > if ((data = rrd_update_v(argc, argv)) == NULL) { > > PyErr_SetString(ErrorObject, rrd_get_error()); > > rrd_clear_error(); > > - return NULL; > > + r = NULL; > > + } else { > > + r = PyDict_FromInfo(data); > > + rrd_info_free(data); > > } > > - r = PyDict_FromInfo(data); > > - rrd_info_free(data); > > + > > + destroy_args(&argv); > > return r; > > } > > Cheers, > Sebastian > > -- Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland http://it.oetiker.ch t...@oetiker.ch ++41 62 775 9902 / sb: -9900 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org