From c4f90ebea78fab0d45340f4fb4b11298ee3ffdca Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Thu, 2 Apr 2009 03:17:39 +0000 Subject: [PATCH] PyImport_AppendInittab() took a char * as a first argument even though that string was stored beyond the life of the call. Changed the signature to be const char * to help make this point. Closes issue #1419652. --- Doc/c-api/import.rst | 2 +- Misc/NEWS | 3 +++ Python/import.c | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Doc/c-api/import.rst b/Doc/c-api/import.rst index c4816f5ed99..bed6089dde4 100644 --- a/Doc/c-api/import.rst +++ b/Doc/c-api/import.rst @@ -232,7 +232,7 @@ Importing Modules tricks with this to provide a dynamically created collection of frozen modules. -.. cfunction:: int PyImport_AppendInittab(char *name, void (*initfunc)(void)) +.. cfunction:: int PyImport_AppendInittab(const char *name, void (*initfunc)(void)) Add a single module to the existing table of built-in modules. This is a convenience wrapper around :cfunc:`PyImport_ExtendInittab`, returning ``-1`` if diff --git a/Misc/NEWS b/Misc/NEWS index 6bf6dcd6815..036a061c84c 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -692,6 +692,9 @@ Build C-API ----- +- Issue #1419652: Change the first argument to PyImport_AppendInittab() to + ``const char *`` as the string is stored beyond the call. + - Some PyBytes_* aliases have been removed because they don't exist in 3.x. - Issue #5175: PyLong_AsUnsignedLongLong now raises OverflowError diff --git a/Python/import.c b/Python/import.c index 98b8dceba43..b39cb18f23e 100644 --- a/Python/import.c +++ b/Python/import.c @@ -3376,7 +3376,7 @@ PyImport_ExtendInittab(struct _inittab *newtab) /* Shorthand to add a single entry given a name and a function */ int -PyImport_AppendInittab(char *name, void (*initfunc)(void)) +PyImport_AppendInittab(const char *name, void (*initfunc)(void)) { struct _inittab newtab[2];