]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix various minor issues discovered with static analysis using Visual Studio 2005...
authorKristján Valur Jónsson <kristjan@ccpgames.com>
Sat, 21 Apr 2007 12:46:49 +0000 (12:46 +0000)
committerKristján Valur Jónsson <kristjan@ccpgames.com>
Sat, 21 Apr 2007 12:46:49 +0000 (12:46 +0000)
Removed obsolete comment, since .dll modules are no longer supported on windows, only .pyd.

Modules/_ctypes/callproc.c
Modules/binascii.c
Modules/cPickle.c
Modules/cStringIO.c
Modules/posixmodule.c
PC/_winreg.c
Python/dynload_win.c
Python/thread_nt.h

index e0765e917cb336ee5a1ab443df0f2e2637735236..738ed2f79dc07b733d953fd4007b42ab7178ebae 100644 (file)
@@ -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;
 }
index 4dee45198ef19c81d73c47e6a8c8d9741b98e6ac..5e0f86dc131327d89ea88029e002bab85c9fb978 100644 (file)
@@ -1165,7 +1165,8 @@ binascii_b2a_qp (PyObject *self, PyObject *args, PyObject *kwargs)
                    ((data[in] == '\t' || data[in] == ' ') && (in + 1 == datalen)) ||
                    ((data[in] < 33) &&
                     (data[in] != '\r') && (data[in] != '\n') &&
-                    (quotetabs && ((data[in] != '\t') || (data[in] != ' ')))))
+                    (!quotetabs ||
+                     (quotetabs && ((data[in] != '\t') && (data[in] != ' '))))))
                {
                        if ((linelen + 3) >= MAXLINESIZE) {
                                linelen = 0;
@@ -1235,7 +1236,8 @@ binascii_b2a_qp (PyObject *self, PyObject *args, PyObject *kwargs)
                    ((data[in] == '\t' || data[in] == ' ') && (in + 1 == datalen)) ||
                    ((data[in] < 33) &&
                     (data[in] != '\r') && (data[in] != '\n') &&
-                    (quotetabs && ((data[in] != '\t') || (data[in] != ' ')))))
+                    (!quotetabs ||
+                     (quotetabs && ((data[in] != '\t') && (data[in] != ' '))))))
                {
                        if ((linelen + 3 )>= MAXLINESIZE) {
                                odata[out++] = '=';
index 4f7d1f198afb84edd1f5eb815d8def0220b22861..dd9887b525a92ad3543ce83bdb95e0920d177aad 100644 (file)
@@ -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;
        }
 
index 100891ba4ad321a93f91868a0b4d257a89526404..06bc6cbae36682ec1d08f97d799a8aded282812b 100644 (file)
@@ -339,13 +339,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;
 
@@ -366,6 +370,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;
@@ -377,12 +382,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);
index 958fb63d316d5254f35bc29a9ae869d65a9243ba..158b12e2eeb953384df90fa23ee681df3d78ac3b 100644 (file)
@@ -4788,18 +4788,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
index b39411a8ca910aa430ee6046ac7c803bdd46bf7c..782761b654b5abf870c3129f31d637fed60703da 100644 (file)
@@ -699,7 +699,7 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize)
                case REG_DWORD:
                        if (value != Py_None && !PyInt_Check(value))
                                return FALSE;
-                       *retDataBuf = (BYTE *)PyMem_NEW(DWORD, sizeof(DWORD));
+                       *retDataBuf = (BYTE *)PyMem_NEW(DWORD, 1);
                        if (*retDataBuf==NULL){
                                PyErr_NoMemory();
                                return FALSE;
index 37d6d2ee38562fc788b34b60b035caa5a9351b8f..1c3b3ab0c8daa29b438a2698353cf6bf24c9fbef 100644 (file)
 const struct filedescr _PyImport_DynLoadFiletab[] = {
 #ifdef _DEBUG
        {"_d.pyd", "rb", C_EXTENSION},
-       /* Temporarily disable .dll, to avoid conflicts between sqlite3.dll
-          and the sqlite3 package. If this needs to be reverted for 2.5,
-          some other solution for the naming conflict must be found.
-       {"_d.dll", "rb", C_EXTENSION},
-       */
 #else
        {".pyd", "rb", C_EXTENSION},
-       /* Likewise
-       {".dll", "rb", C_EXTENSION},
-       */
 #endif
        {0, 0}
 };
index 67f5ed51747543c961a5f94627a58e11309390d3..27fca72cd88c7d0381cee76bb4dfd69f51a26898 100644 (file)
@@ -202,12 +202,12 @@ PyThread_start_new_thread(void (*func)(void *), void *arg)
                 * too many threads".
                 */
                dprintf(("%ld: PyThread_start_new_thread failed: %p errno %d\n",
-                        PyThread_get_thread_ident(), rv, errno));
+                        PyThread_get_thread_ident(), (void*)rv, errno));
                obj.id = -1;
        }
        else {
                dprintf(("%ld: PyThread_start_new_thread succeeded: %p\n",
-                        PyThread_get_thread_ident(), rv));
+                        PyThread_get_thread_ident(), (void*)rv));
                /* wait for thread to initialize, so we can get its id */
                WaitForSingleObject(obj.done, INFINITE);
                assert(obj.id != -1);
@@ -333,7 +333,7 @@ PyThread_release_lock(PyThread_type_lock aLock)
        dprintf(("%ld: PyThread_release_lock(%p) called\n", PyThread_get_thread_ident(),aLock));
 
        if (!(aLock && LeaveNonRecursiveMutex((PNRMUTEX) aLock)))
-               dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n", PyThread_get_thread_ident(), aLock, GetLastError()));
+               dprintf(("%ld: Could not PyThread_release_lock(%p) error: %ld\n", PyThread_get_thread_ident(), aLock, GetLastError()));
 }
 
 /* minimum/maximum thread stack sizes supported */