@@ -110,6 +110,9 @@ static PyObject *
110
110
compile_and_marshal (const char * name , const char * text )
111
111
{
112
112
char * filename = (char * ) malloc (strlen (name ) + 10 );
113
+ if (filename == NULL ) {
114
+ return PyErr_NoMemory ();
115
+ }
113
116
sprintf (filename , "<frozen %s>" , name );
114
117
PyObject * code = Py_CompileStringExFlags (text , filename ,
115
118
Py_file_input , NULL , 0 );
@@ -133,6 +136,9 @@ get_varname(const char *name, const char *prefix)
133
136
{
134
137
size_t n = strlen (prefix );
135
138
char * varname = (char * ) malloc (strlen (name ) + n + 1 );
139
+ if (varname == NULL ) {
140
+ return NULL ;
141
+ }
136
142
(void )strcpy (varname , prefix );
137
143
for (size_t i = 0 ; name [i ] != '\0' ; i ++ ) {
138
144
if (name [i ] == '.' ) {
@@ -178,6 +184,11 @@ write_frozen(const char *outpath, const char *inpath, const char *name,
178
184
179
185
fprintf (outfile , "%s\n" , header );
180
186
char * arrayname = get_varname (name , "_Py_M__" );
187
+ if (arrayname == NULL ) {
188
+ fprintf (stderr , "memory error: could not allocate varname\n" );
189
+ fclose (outfile );
190
+ return -1 ;
191
+ }
181
192
write_code (outfile , marshalled , arrayname );
182
193
free (arrayname );
183
194
0 commit comments