[Python-checkins] r54909 - in python/branches/release25-maint: 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
Kristján Valur Jónsson
kristjan at ccpgames.com
Sun Apr 22 21:49:28 CEST 2007
True, this was the result of work I was doing for CCP when integrating 2.5.
I plan to do do a fresh check of the trunk in the next few days.
Kristján
-----Original Message-----
From: Neal Norwitz [mailto:nnorwitz at gmail.com]
Sent: Sunday, April 22, 2007 18:50
To: kristjan.jonsson; Kristján Valur Jónsson
Subject: Re: [Python-checkins] r54909 - in python/branches/release25-maint: 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
This doesn't look like it was applied to the trunk. Most if not all
of these cases are still there.
n
--
On 4/21/07, kristjan.jonsson <python-checkins at python.org> wrote:
> Author: kristjan.jonsson
> Date: Sat Apr 21 14:46:49 2007
> New Revision: 54909
>
> Modified:
> python/branches/release25-maint/Modules/_ctypes/callproc.c
> python/branches/release25-maint/Modules/binascii.c
> python/branches/release25-maint/Modules/cPickle.c
> python/branches/release25-maint/Modules/cStringIO.c
> python/branches/release25-maint/Modules/posixmodule.c
> python/branches/release25-maint/PC/_winreg.c
> python/branches/release25-maint/Python/dynload_win.c
> python/branches/release25-maint/Python/thread_nt.h
> Log:
> Fix various minor issues discovered with static analysis using Visual Studio 2005 Team System.
> Removed obsolete comment, since .dll modules are no longer supported on windows, only .pyd.
>
> Modified: python/branches/release25-maint/Modules/_ctypes/callproc.c
> ==============================================================================
> --- python/branches/release25-maint/Modules/_ctypes/callproc.c (original)
> +++ python/branches/release25-maint/Modules/_ctypes/callproc.c Sat Apr 21 14:46:49 2007
> @@ -64,6 +64,7 @@
>
> #ifdef MS_WIN32
> #include <windows.h>
> +#include <tchar.h>
> #else
> #include "ctypes_dlfcn.h"
> #endif
> @@ -97,9 +98,9 @@
> 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;
> }
>
> Modified: python/branches/release25-maint/Modules/binascii.c
> ==============================================================================
> --- python/branches/release25-maint/Modules/binascii.c (original)
> +++ python/branches/release25-maint/Modules/binascii.c Sat Apr 21 14:46:49 2007
> @@ -1165,7 +1165,8 @@
> ((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 @@
> ((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++] = '=';
>
> Modified: python/branches/release25-maint/Modules/cPickle.c
> ==============================================================================
> --- python/branches/release25-maint/Modules/cPickle.c (original)
> +++ python/branches/release25-maint/Modules/cPickle.c Sat Apr 21 14:46:49 2007
> @@ -533,11 +533,12 @@
> 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 @@
> 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 @@
> 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 @@
> */
>
> 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;
> }
>
>
> Modified: python/branches/release25-maint/Modules/cStringIO.c
> ==============================================================================
> --- python/branches/release25-maint/Modules/cStringIO.c (original)
> +++ python/branches/release25-maint/Modules/cStringIO.c Sat Apr 21 14:46:49 2007
> @@ -339,13 +339,17 @@
> }
>
> 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 @@
> 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 @@
> 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);
>
> Modified: python/branches/release25-maint/Modules/posixmodule.c
> ==============================================================================
> --- python/branches/release25-maint/Modules/posixmodule.c (original)
> +++ python/branches/release25-maint/Modules/posixmodule.c Sat Apr 21 14:46:49 2007
> @@ -4788,18 +4788,19 @@
> (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
>
> Modified: python/branches/release25-maint/PC/_winreg.c
> ==============================================================================
> --- python/branches/release25-maint/PC/_winreg.c (original)
> +++ python/branches/release25-maint/PC/_winreg.c Sat Apr 21 14:46:49 2007
> @@ -699,7 +699,7 @@
> 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;
>
> Modified: python/branches/release25-maint/Python/dynload_win.c
> ==============================================================================
> --- python/branches/release25-maint/Python/dynload_win.c (original)
> +++ python/branches/release25-maint/Python/dynload_win.c Sat Apr 21 14:46:49 2007
> @@ -13,16 +13,8 @@
> 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}
> };
>
> Modified: python/branches/release25-maint/Python/thread_nt.h
> ==============================================================================
> --- python/branches/release25-maint/Python/thread_nt.h (original)
> +++ python/branches/release25-maint/Python/thread_nt.h Sat Apr 21 14:46:49 2007
> @@ -202,12 +202,12 @@
> * 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 @@
> 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 */
> _______________________________________________
> Python-checkins mailing list
> Python-checkins at python.org
> http://mail.python.org/mailman/listinfo/python-checkins
>
More information about the Python-checkins
mailing list