From eadc2a320fadb8c6ba9ec5aecb66494dd0189b7c Mon Sep 17 00:00:00 2001 From: Nicolas Dandrimont Date: Mon, 5 Oct 2015 19:08:56 +0200 Subject: [PATCH] tag._message: avoid NULL pointer dereference A tag message can be empty. In that case, git_tag_message returns NULL. PyBytes_FromString doesn't check its argument for nullness, and therefore accessing _message on a tag with an empty message segfaults Python. --- src/tag.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/tag.c b/src/tag.c index d6507ae2f..87cef474b 100644 --- a/src/tag.c +++ b/src/tag.c @@ -111,7 +111,11 @@ PyDoc_STRVAR(Tag__message__doc__, "Tag message (bytes)."); PyObject * Tag__message__get__(Tag *self) { - return PyBytes_FromString(git_tag_message(self->tag)); + const char *message; + message = git_tag_message(self->tag); + if (!message) + Py_RETURN_NONE; + return PyBytes_FromString(message); } PyMethodDef Tag_methods[] = {