Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bfd5d75

Browse files
committed
* Python/traceback.c: security fix -- check for buffer oveflow
before concatenating sys.path item and module name
1 parent 03093a2 commit bfd5d75

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

Python/traceback.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,13 +178,18 @@ tb_displayline(f, filename, lineno, name)
178178
path = sysget("path");
179179
if (path != NULL && is_listobject(path)) {
180180
int npath = getlistsize(path);
181+
int taillen = strlen(tail);
181182
char namebuf[MAXPATHLEN+1];
182183
for (i = 0; i < npath; i++) {
183184
object *v = getlistitem(path, i);
184185
if (is_stringobject(v)) {
185186
int len;
186-
strcpy(namebuf, getstringvalue(v));
187187
len = getstringsize(v);
188+
if (len + 1 + taillen >= MAXPATHLEN)
189+
continue; /* Too long */
190+
strcpy(namebuf, getstringvalue(v));
191+
if (strlen(namebuf) != len)
192+
continue; /* v contains '\0' */
188193
if (len > 0 && namebuf[len-1] != SEP)
189194
namebuf[len++] = SEP;
190195
strcpy(namebuf+len, tail);

0 commit comments

Comments
 (0)