summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2010-12-16 13:13:59 +0100
committerDenys Vlasenko <dvlasenk@redhat.com>2010-12-16 13:13:59 +0100
commit75ead03a87172bc3a60ab5628a9c78e01f74ad03 (patch)
tree6d2dce2ba7c425612004f30fdcdd0cad796e1d92 /src
parent27276b34e3631f60a2414ab9c199f28de9b03780 (diff)
downloadabrt-75ead03a87172bc3a60ab5628a9c78e01f74ad03.tar.gz
abrt-75ead03a87172bc3a60ab5628a9c78e01f74ad03.tar.xz
abrt-75ead03a87172bc3a60ab5628a9c78e01f74ad03.zip
report-python/dump_dir: fix SEGV when dd.op() operates on closed dd
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src')
-rw-r--r--src/report-python/dump_dir.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/report-python/dump_dir.c b/src/report-python/dump_dir.c
index eb72e10b..b207757d 100644
--- a/src/report-python/dump_dir.c
+++ b/src/report-python/dump_dir.c
@@ -63,6 +63,12 @@ static PyObject *p_dd_close(PyObject *pself, PyObject *args)
static PyObject *p_dd_delete(PyObject *pself, PyObject *args)
{
p_dump_dir *self = (p_dump_dir*)pself;
+//Do we want to disallow delete() on non-opened dd?
+// if (!self->dd)
+// {
+// PyErr_SetString(ReportError, "dump dir is not open");
+// return NULL;
+// }
dd_delete(self->dd);
self->dd = NULL;
Py_RETURN_NONE;
@@ -72,6 +78,11 @@ static PyObject *p_dd_delete(PyObject *pself, PyObject *args)
static PyObject *p_dd_exist(PyObject *pself, PyObject *args)
{
p_dump_dir *self = (p_dump_dir*)pself;
+ if (!self->dd)
+ {
+ PyErr_SetString(ReportError, "dump dir is not open");
+ return NULL;
+ }
const char *path;
if (!PyArg_ParseTuple(args, "s", &path))
{
@@ -90,6 +101,11 @@ static PyObject *p_dd_exist(PyObject *pself, PyObject *args)
static PyObject *p_dd_load_text_ext(PyObject *pself, PyObject *args)
{
p_dump_dir *self = (p_dump_dir*)pself;
+ if (!self->dd)
+ {
+ PyErr_SetString(ReportError, "dump dir is not open");
+ return NULL;
+ }
const char *name;
int flags = 0;
if (!PyArg_ParseTuple(args, "s|i", &name, &flags))
@@ -106,6 +122,11 @@ static PyObject *p_dd_load_text_ext(PyObject *pself, PyObject *args)
static PyObject *p_dd_save_text(PyObject *pself, PyObject *args)
{
p_dump_dir *self = (p_dump_dir*)pself;
+ if (!self->dd)
+ {
+ PyErr_SetString(ReportError, "dump dir is not open");
+ return NULL;
+ }
const char *name;
const char *data;
if (!PyArg_ParseTuple(args, "ss", &name, &data))
@@ -120,6 +141,11 @@ static PyObject *p_dd_save_text(PyObject *pself, PyObject *args)
static PyObject *p_dd_save_binary(PyObject *pself, PyObject *args)
{
p_dump_dir *self = (p_dump_dir*)pself;
+ if (!self->dd)
+ {
+ PyErr_SetString(ReportError, "dump dir is not open");
+ return NULL;
+ }
const char *name;
const char *data;
unsigned size;