Fix problems found by Coverity.

longobject.c: also fix an ssize_t problem
  <a> could have been NULL, so hoist the size calc to not use <a>.

_ssl.c: under fail: self is DECREF'd, but it would have been NULL.

_elementtree.c: delete self if there was an error.

_csv.c: I'm not sure if lineterminator could have been anything other than
a string.  However, other string method calls are checked, so check this
one too.
This commit is contained in:
Neal Norwitz 2006-05-10 06:57:58 +00:00
parent ad2ef33245
commit c6a989ac3a
4 changed files with 12 additions and 8 deletions

View file

@ -1104,6 +1104,8 @@ join_append_lineterminator(WriterObj *self)
char *terminator;
terminator_len = PyString_Size(self->dialect->lineterminator);
if (terminator_len == -1)
return 0;
/* grow record buffer if necessary */
if (!join_check_rec_size(self, self->rec_len + terminator_len))

View file

@ -327,8 +327,10 @@ element_new(PyObject* tag, PyObject* attrib)
if (attrib != Py_None) {
if (element_new_extra(self, attrib) < 0)
if (element_new_extra(self, attrib) < 0) {
PyObject_Del(self);
return NULL;
}
self->extra->length = 0;
self->extra->allocated = STATIC_CHILDREN;

View file

@ -183,9 +183,9 @@ newPySSLObject(PySocketSockObject *Sock, char *key_file, char *cert_file)
int sockstate;
self = PyObject_New(PySSLObject, &PySSL_Type); /* Create new object */
if (self == NULL){
errstr = "newPySSLObject error";
goto fail;
if (self == NULL) {
PyErr_SetString(PySSLErrorObject, "newPySSLObject error");
return NULL;
}
memset(self->server, '\0', sizeof(char) * X509_NAME_MAXLEN);
memset(self->issuer, '\0', sizeof(char) * X509_NAME_MAXLEN);