mirror of
https://github.com/python/cpython.git
synced 2025-12-15 21:44:50 +00:00
Merge change 54909 from release25-maint: Fix several minor issues discovered using code analysis in VisualStudio 2005 Team Edition
This commit is contained in:
parent
e133a95d1c
commit
17b8e97e2e
6 changed files with 35 additions and 20 deletions
|
|
@ -349,13 +349,17 @@ O_seek(Oobject *self, PyObject *args) {
|
|||
}
|
||||
|
||||
if (position > self->buf_size) {
|
||||
char *newbuf;
|
||||
self->buf_size*=2;
|
||||
if (self->buf_size <= position) self->buf_size=position+1;
|
||||
self->buf = (char*) realloc(self->buf,self->buf_size);
|
||||
if (!self->buf) {
|
||||
newbuf = (char*) realloc(self->buf,self->buf_size);
|
||||
if (!newbuf) {
|
||||
free(self->buf);
|
||||
self->buf = 0;
|
||||
self->buf_size=self->pos=0;
|
||||
return PyErr_NoMemory();
|
||||
}
|
||||
self->buf = newbuf;
|
||||
}
|
||||
else if (position < 0) position=0;
|
||||
|
||||
|
|
@ -376,6 +380,7 @@ static int
|
|||
O_cwrite(PyObject *self, const char *c, Py_ssize_t l) {
|
||||
Py_ssize_t newl;
|
||||
Oobject *oself;
|
||||
char *newbuf;
|
||||
|
||||
if (!IO__opencheck(IOOOBJECT(self))) return -1;
|
||||
oself = (Oobject *)self;
|
||||
|
|
@ -387,12 +392,15 @@ O_cwrite(PyObject *self, const char *c, Py_ssize_t l) {
|
|||
assert(newl + 1 < INT_MAX);
|
||||
oself->buf_size = (int)(newl+1);
|
||||
}
|
||||
oself->buf = (char*)realloc(oself->buf, oself->buf_size);
|
||||
if (!oself->buf) {
|
||||
newbuf = (char*)realloc(oself->buf, oself->buf_size);
|
||||
if (!newbuf) {
|
||||
PyErr_SetString(PyExc_MemoryError,"out of memory");
|
||||
free(oself->buf);
|
||||
oself->buf = 0;
|
||||
oself->buf_size = oself->pos = 0;
|
||||
return -1;
|
||||
}
|
||||
oself->buf = newbuf;
|
||||
}
|
||||
|
||||
memcpy(oself->buf+oself->pos,c,l);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue