Skip to content

Commit 3119301

Browse files
fix: V-002 security vulnerability
Automated security fix generated by Orbis Security AI
1 parent db0ee44 commit 3119301

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

Parser/string_parser.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ decode_unicode_with_escapes(Parser *parser, const char *s, size_t len, Token *t)
182182
w_len = PyUnicode_GET_LENGTH(w);
183183
for (i = 0; i < w_len; i++) {
184184
Py_UCS4 chr = PyUnicode_READ(kind, data, i);
185-
sprintf(p, "\\U%08x", chr);
185+
snprintf(p, 11, "\\U%08x", chr);
186186
p += 10;
187187
}
188188
/* Should be impossible to overflow */

Programs/_freeze_module.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ compile_and_marshal(const char *name, const char *text)
126126
if (filename == NULL) {
127127
return PyErr_NoMemory();
128128
}
129-
sprintf(filename, "<frozen %s>", name);
129+
snprintf(filename, strlen(name) + 10, "<frozen %s>", name);
130130
PyObject *code = Py_CompileStringExFlags(text, filename,
131131
Py_file_input, NULL, 0);
132132
free(filename);
@@ -153,7 +153,7 @@ get_varname(const char *name, const char *prefix)
153153
if (varname == NULL) {
154154
return NULL;
155155
}
156-
(void)strcpy(varname, prefix);
156+
memcpy(varname, prefix, n);
157157
for (size_t i = 0; name[i] != '\0'; i++) {
158158
if (name[i] == '.') {
159159
varname[n++] = '_';

0 commit comments

Comments
 (0)