mirror of
https://github.com/python/cpython.git
synced 2025-08-10 11:58:39 +00:00
check for embedded \0 in strings for z and s formats
This commit is contained in:
parent
6d946f98bd
commit
96caaee836
1 changed files with 13 additions and 2 deletions
|
@ -206,6 +206,10 @@ do_arg(arg, p_format, p_va)
|
||||||
*q = getstringsize(arg);
|
*q = getstringsize(arg);
|
||||||
format++;
|
format++;
|
||||||
}
|
}
|
||||||
|
else if (strlen(*p) != getstringsize(arg)) {
|
||||||
|
err_setstr(ValueError, "embedded '\\0' in string arg");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -225,6 +229,10 @@ do_arg(arg, p_format, p_va)
|
||||||
*q = getstringsize(arg);
|
*q = getstringsize(arg);
|
||||||
format++;
|
format++;
|
||||||
}
|
}
|
||||||
|
else if (*p != NULL && strlen(*p) != getstringsize(arg)) {
|
||||||
|
err_setstr(ValueError, "embedded '\\0' in string arg");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,9 +300,12 @@ int getargs(va_alist) va_dcl
|
||||||
va_end(va);
|
va_end(va);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
char buf[256];
|
char buf[256];
|
||||||
sprintf(buf, "bad argument list (format '%s')", format);
|
if (!err_occurred()) {
|
||||||
|
sprintf(buf, "bad argument list (format '%s')",
|
||||||
|
format);
|
||||||
err_setstr(TypeError, buf);
|
err_setstr(TypeError, buf);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue