[PATCH v2] lazymanifest: check more return values in filtercopy
Martin von Zweigbergk
martinvonz at google.com
Wed Jan 6 18:33:20 CST 2016
Pushed to the clowncopter, thanks!
On Wed, Jan 6, 2016 at 4:14 PM Augie Fackler <raf at durin42.com> wrote:
> # HG changeset patch
> # User Augie Fackler <raf at durin42.com>
> # Date 1451586702 18000
> # Thu Dec 31 13:31:42 2015 -0500
> # Node ID d1f465b710bca42751366fcf975483aee3593b8d
> # Parent a23cb402be9b9e6812d084f0d30306c826b6d6a4
> lazymanifest: check more return values in filtercopy
>
> Spotted by Bryan O'Sullivan (and vexingly not the static analyzer I've
> been using.)
>
> diff --git a/mercurial/manifest.c b/mercurial/manifest.c
> --- a/mercurial/manifest.c
> +++ b/mercurial/manifest.c
> @@ -707,11 +707,13 @@ static lazymanifest *lazymanifest_filter
> copy->pydata = self->pydata;
> Py_INCREF(self->pydata);
> for (i = 0; i < self->numlines; i++) {
> - PyObject *arg = PyString_FromString(self->lines[i].start);
> - PyObject *arglist = PyTuple_Pack(1, arg);
> - PyObject *result = PyObject_CallObject(matchfn, arglist);
> + PyObject *arglist = NULL, *result = NULL;
> + arglist = Py_BuildValue("(s)", self->lines[i].start);
> + if (!arglist) {
> + return NULL;
> + }
> + result = PyObject_CallObject(matchfn, arglist);
> Py_DECREF(arglist);
> - Py_DECREF(arg);
> /* if the callback raised an exception, just let it
> * through and give up */
> if (!result) {
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20160107/99785966/attachment.html>
More information about the Mercurial-devel
mailing list