summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorKristján Valur Jónsson <kristjan@ccpgames.com>2007-04-25 00:10:50 (GMT)
committerKristján Valur Jónsson <kristjan@ccpgames.com>2007-04-25 00:10:50 (GMT)
commit17b8e97e2e2c24322d45c33308212e0d6c32d934 (patch)
treeb29361f28ad72a27c5d235e75a6340ebf03209d4 /Modules
parente133a95d1c6c6b28afe66dc0118282fe0d1073f1 (diff)
downloadcpython-17b8e97e2e2c24322d45c33308212e0d6c32d934.zip
cpython-17b8e97e2e2c24322d45c33308212e0d6c32d934.tar.gz
cpython-17b8e97e2e2c24322d45c33308212e0d6c32d934.tar.bz2
Merge change 54909 from release25-maint: Fix several minor issues discovered using code analysis in VisualStudio 2005 Team Edition
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_ctypes/callproc.c5
-rw-r--r--Modules/cPickle.c19
-rw-r--r--Modules/cStringIO.c16
-rw-r--r--Modules/posixmodule.c7
4 files changed, 31 insertions, 16 deletions
diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
index 18e1991..074573a 100644
--- a/Modules/_ctypes/callproc.c
+++ b/Modules/_ctypes/callproc.c
@@ -64,6 +64,7 @@
#ifdef MS_WIN32
#include <windows.h>
+#include <tchar.h>
#else
#include "ctypes_dlfcn.h"
#endif
@@ -97,9 +98,9 @@ static TCHAR *FormatError(DWORD code)
0,
NULL);
if (n) {
- while (isspace(lpMsgBuf[n-1]))
+ while (_istspace(lpMsgBuf[n-1]))
--n;
- lpMsgBuf[n] = '\0'; /* rstrip() */
+ lpMsgBuf[n] = _T('\0'); /* rstrip() */
}
return lpMsgBuf;
}
diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index 4f7d1f1..dd9887b 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -533,11 +533,12 @@ read_file(Unpicklerobject *self, char **s, Py_ssize_t n)
self->buf_size = size;
}
else if (n > self->buf_size) {
- self->buf = (char *)realloc(self->buf, n);
- if (!self->buf) {
+ char *newbuf = (char *)realloc(self->buf, n);
+ if (!newbuf) {
PyErr_NoMemory();
return -1;
}
+ self->buf = newbuf;
self->buf_size = n;
}
@@ -576,6 +577,7 @@ readline_file(Unpicklerobject *self, char **s)
i = 0;
while (1) {
int bigger;
+ char *newbuf;
for (; i < (self->buf_size - 1); i++) {
if (feof(self->fp) ||
(self->buf[i] = getc(self->fp)) == '\n') {
@@ -589,11 +591,12 @@ readline_file(Unpicklerobject *self, char **s)
PyErr_NoMemory();
return -1;
}
- self->buf = (char *)realloc(self->buf, bigger);
- if (!self->buf) {
+ newbuf = (char *)realloc(self->buf, bigger);
+ if (!newbuf) {
PyErr_NoMemory();
return -1;
}
+ self->buf = newbuf;
self->buf_size = bigger;
}
}
@@ -4365,17 +4368,19 @@ load_mark(Unpicklerobject *self)
*/
if ((self->num_marks + 1) >= self->marks_size) {
+ int *marks;
s=self->marks_size+20;
if (s <= self->num_marks) s=self->num_marks + 1;
if (self->marks == NULL)
- self->marks=(int *)malloc(s * sizeof(int));
+ marks=(int *)malloc(s * sizeof(int));
else
- self->marks=(int *)realloc(self->marks,
+ marks=(int *)realloc(self->marks,
s * sizeof(int));
- if (! self->marks) {
+ if (!marks) {
PyErr_NoMemory();
return -1;
}
+ self->marks = marks;
self->marks_size = s;
}
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index 3f762b0..2085696 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -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);
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 8fc9fa9..bb1dc4f 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -4841,18 +4841,19 @@ _PyPopenCreateProcess(char *cmdstring,
(sizeof(modulepath)/sizeof(modulepath[0]))
-strlen(modulepath));
if (stat(modulepath, &statinfo) != 0) {
+ size_t mplen = sizeof(modulepath)/sizeof(modulepath[0]);
/* Eeek - file-not-found - possibly an embedding
situation - see if we can locate it in sys.prefix
*/
strncpy(modulepath,
Py_GetExecPrefix(),
- sizeof(modulepath)/sizeof(modulepath[0]));
+ mplen);
+ modulepath[mplen-1] = '\0';
if (modulepath[strlen(modulepath)-1] != '\\')
strcat(modulepath, "\\");
strncat(modulepath,
szConsoleSpawn,
- (sizeof(modulepath)/sizeof(modulepath[0]))
- -strlen(modulepath));
+ mplen-strlen(modulepath));
/* No where else to look - raise an easily identifiable
error, rather than leaving Windows to report
"file not found" - as the user is probably blissfully