|
36 | 36 | #include "wildmatch.h" |
37 | 37 | #include <git2/refdb.h> |
38 | 38 | #include <git2/sys/refdb_backend.h> |
| 39 | +#include <git2/sys/errors.h> |
39 | 40 |
|
40 | 41 | extern PyTypeObject ReferenceType; |
41 | 42 | extern PyTypeObject RepositoryType; |
@@ -137,8 +138,12 @@ pygit2_refdb_backend_iterator(git_reference_iterator **iter, |
137 | 138 | PyObject *iterator = PyObject_GetIter((PyObject *)be->RefdbBackend); |
138 | 139 | assert(iterator); |
139 | 140 |
|
140 | | - struct pygit2_refdb_iterator *pyiter = |
141 | | - calloc(1, sizeof(struct pygit2_refdb_iterator)); |
| 141 | + struct pygit2_refdb_iterator *pyiter = calloc(1, sizeof(struct pygit2_refdb_iterator)); |
| 142 | + if (pyiter == NULL) { |
| 143 | + Py_DECREF(iterator); |
| 144 | + git_error_set(GIT_ERROR_NOMEMORY, "out of memory"); |
| 145 | + return GIT_ERROR; |
| 146 | + } |
142 | 147 | *iter = (git_reference_iterator *)pyiter; |
143 | 148 | pyiter->iterator = iterator; |
144 | 149 | pyiter->base.next = pygit2_refdb_iterator_next; |
@@ -389,18 +394,20 @@ int |
389 | 394 | RefdbBackend_init(RefdbBackend *self, PyObject *args, PyObject *kwds) |
390 | 395 | { |
391 | 396 | if (args && PyTuple_Size(args) > 0) { |
392 | | - PyErr_SetString(PyExc_TypeError, |
393 | | - "RefdbBackend takes no arguments"); |
| 397 | + PyErr_SetString(PyExc_TypeError, "RefdbBackend takes no arguments"); |
394 | 398 | return -1; |
395 | 399 | } |
396 | 400 |
|
397 | 401 | if (kwds && PyDict_Size(kwds) > 0) { |
398 | | - PyErr_SetString(PyExc_TypeError, |
399 | | - "RefdbBackend takes no keyword arguments"); |
| 402 | + PyErr_SetString(PyExc_TypeError, "RefdbBackend takes no keyword arguments"); |
400 | 403 | return -1; |
401 | 404 | } |
402 | 405 |
|
403 | 406 | struct pygit2_refdb_backend *be = calloc(1, sizeof(struct pygit2_refdb_backend)); |
| 407 | + if (be == NULL) { |
| 408 | + PyErr_NoMemory(); |
| 409 | + return -1; |
| 410 | + } |
404 | 411 | git_refdb_init_backend(&be->backend, GIT_REFDB_BACKEND_VERSION); |
405 | 412 | be->RefdbBackend = (PyObject *)self; |
406 | 413 |
|
|
0 commit comments