@@ -123,6 +123,9 @@ static PyObject *
123
123
compile_and_marshal (const char * name , const char * text )
124
124
{
125
125
char * filename = (char * ) malloc (strlen (name ) + 10 );
126
+ if (filename == NULL ) {
127
+ return PyErr_NoMemory ();
128
+ }
126
129
sprintf (filename , "<frozen %s>" , name );
127
130
PyObject * code = Py_CompileStringExFlags (text , filename ,
128
131
Py_file_input , NULL , 0 );
@@ -146,6 +149,9 @@ get_varname(const char *name, const char *prefix)
146
149
{
147
150
size_t n = strlen (prefix );
148
151
char * varname = (char * ) malloc (strlen (name ) + n + 1 );
152
+ if (varname == NULL ) {
153
+ return NULL ;
154
+ }
149
155
(void )strcpy (varname , prefix );
150
156
for (size_t i = 0 ; name [i ] != '\0' ; i ++ ) {
151
157
if (name [i ] == '.' ) {
@@ -191,6 +197,11 @@ write_frozen(const char *outpath, const char *inpath, const char *name,
191
197
192
198
fprintf (outfile , "%s\n" , header );
193
199
char * arrayname = get_varname (name , "_Py_M__" );
200
+ if (arrayname == NULL ) {
201
+ fprintf (stderr , "memory error: could not allocate varname\n" );
202
+ fclose (outfile );
203
+ return -1 ;
204
+ }
194
205
write_code (outfile , marshalled , arrayname );
195
206
free (arrayname );
196
207
0 commit comments