On 09/08/18 13:19, Antia Puentes wrote: > Hi Alejandro, > > > On 20/07/18 17:16, Alejandro Piñeiro wrote: >> + >> +bool >> +piglit_load_source_from_shader_test(const char *filename, >> + GLenum shader_type, >> + bool spirv, >> + char **output_source, >> + unsigned *output_source_size) >> +{ >> + char group_name[4096]; >> + char *source = NULL; >> + unsigned text_size; >> + char *line = NULL; >> + char *first_line = NULL; >> + >> + group_name_for_stage(shader_type, spirv, group_name); >> + >> + char *text = piglit_load_text_file(filename, &text_size); > There is a memory leak, you forgot to free "text" before returning.
Thanks. I plan to send a new version of the pending ARB_gl_spirv series today. I will include a new version of this patch with that leak fixed. > >> + line = text; >> + >> + if (line == NULL) { >> + fprintf(stderr, "Could not read file \"%s\"\n", filename); >> + return false; >> + } >> + >> + while (line[0] != '\0') { >> + if (line[0] == '[' && first_line != NULL) { >> + break; >> + } >> + >> + if (line[0] == '[' && first_line == NULL) { >> + if (parse_str(line, group_name, NULL)) { >> + first_line = strchrnul(line, '\n'); >> + if (first_line[0] != '\0') >> + first_line++; >> + } >> + } >> + >> + line = strchrnul(line, '\n'); >> + if (line[0] != '\0') >> + line++; >> + } >> + >> + if (first_line == NULL) { >> + fprintf(stderr, "Could not find groupname \"%s\" on file >> \"%s\"\n", >> + group_name, filename); >> + return false; >> + } >> + >> + text_size = line - first_line + 1; >> + source = malloc(sizeof(char*) * text_size); >> + snprintf(source, line - first_line + 1, "%s", first_line); >> + >> + if (output_source) >> + *output_source = source; >> + >> + if (output_source_size) >> + *output_source_size = text_size; >> + >> + return true; >> +} >> > Regards. > > > _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit