]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[Backport r50683 | neal.norwitz]
authorAndrew M. Kuchling <amk@amk.ca>
Tue, 3 Oct 2006 18:43:28 +0000 (18:43 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Tue, 3 Oct 2006 18:43:28 +0000 (18:43 +0000)
Stop INCREFing name, then checking if it's NULL.  name (f_name) should never
be NULL so assert it.  Fix one place where we could have passed NULL.

Reported by Klocwork #66.

Objects/fileobject.c

index 4f5720cde195a7df2830ee1ca060203f6f0cdc54..a66846c0edc96f93578b327046e6adb1efd986d9 100644 (file)
@@ -98,6 +98,7 @@ static PyObject *
 fill_file_fields(PyFileObject *f, FILE *fp, PyObject *name, char *mode,
                 int (*close)(FILE *))
 {
+       assert(name != NULL);
        assert(f != NULL);
        assert(PyFile_Check(f));
        assert(f->f_fp == NULL);
@@ -106,7 +107,7 @@ fill_file_fields(PyFileObject *f, FILE *fp, PyObject *name, char *mode,
        Py_DECREF(f->f_mode);
        Py_DECREF(f->f_encoding);
 
-        Py_INCREF (name);
+        Py_INCREF(name);
         f->f_name = name;
 
        f->f_mode = PyString_FromString(mode);
@@ -121,7 +122,7 @@ fill_file_fields(PyFileObject *f, FILE *fp, PyObject *name, char *mode,
        Py_INCREF(Py_None);
        f->f_encoding = Py_None;
 
-       if (f->f_name == NULL || f->f_mode == NULL)
+       if (f->f_mode == NULL)
                return NULL;
        f->f_fp = fp;
         f = dircheck(f);
@@ -207,7 +208,9 @@ PyFile_FromFile(FILE *fp, char *name, char *mode, int (*close)(FILE *))
        PyFileObject *f = (PyFileObject *)PyFile_Type.tp_new(&PyFile_Type,
                                                             NULL, NULL);
        if (f != NULL) {
-                PyObject *o_name = PyString_FromString(name);
+               PyObject *o_name = PyString_FromString(name);
+               if (o_name == NULL)
+                       return NULL;
                if (fill_file_fields(f, fp, o_name, mode, close) == NULL) {
                        Py_DECREF(f);
                        f = NULL;