| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -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 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments