X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fpython-systemd%2F_journal.c;h=cbc661d837ad45c6786c2826dd465161547ba6e1;hb=e091457e822ff35ff7b1d3b3a1f91c2ee6249e5a;hp=2de0d4f91d5f5eb37511e08810c2eaf2a717d4d5;hpb=ab3a162c0194fd92884798488eeafdcc5c4d7d57;p=elogind.git diff --git a/src/python-systemd/_journal.c b/src/python-systemd/_journal.c index 2de0d4f91..cbc661d83 100644 --- a/src/python-systemd/_journal.c +++ b/src/python-systemd/_journal.c @@ -22,6 +22,7 @@ #include #include +#include "util.h" #define SD_JOURNAL_SUPPRESS_LOCATION #include @@ -40,8 +41,7 @@ static PyObject *journal_sendv(PyObject *self, PyObject *args) { /* Allocate an array for the argument strings */ argc = PyTuple_Size(args); - encoded = alloca(argc * sizeof(PyObject*)); - memset(encoded, 0, argc * sizeof(PyObject*)); + encoded = alloca0(argc * sizeof(PyObject*)); /* Allocate sufficient iovector space for the arguments. */ iov = alloca(argc * sizeof(struct iovec)); @@ -113,14 +113,19 @@ static PyMethodDef methods[] = { { NULL, NULL, 0, NULL } /* Sentinel */ }; -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wmissing-prototypes" - #if PY_MAJOR_VERSION < 3 +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC init_journal(void) { - (void) Py_InitModule("_journal", methods); + PyObject *m; + + m = Py_InitModule("_journal", methods); + if (m == NULL) + return; + + PyModule_AddStringConstant(m, "__version__", PACKAGE_VERSION); } +REENABLE_WARNING; #else @@ -132,10 +137,21 @@ static struct PyModuleDef module = { methods }; +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC PyInit__journal(void) { - return PyModule_Create(&module); + PyObject *m; + + m = PyModule_Create(&module); + if (m == NULL) + return NULL; + + if (PyModule_AddStringConstant(m, "__version__", PACKAGE_VERSION)) { + Py_DECREF(m); + return NULL; + } + + return m; } +REENABLE_WARNING; #endif - -#pragma GCC diagnostic pop