If an unsupported encoding is passed to hubbub_parser_create(), 
libparserutils/src/input/inputstream.c will cause a memory leak because is does 
not free allocated objects before returning.

Here is a proposed fix, I hope you find the context in 
parserutils_inputstream_create():

        if (enc != NULL) {
                parserutils_filter_optparams params;

                s->mibenum = 
                        parserutils_charset_mibenum_from_name(enc, strlen(enc));

                if (s->mibenum == 0) {
                        parserutils__filter_destroy(s->input); /* Added. */
                        parserutils_buffer_destroy(s->public.utf8); /* Added. */
                        parserutils_buffer_destroy(s->raw); /* Added. */
                        free(s); /* Added. */
                        return PARSERUTILS_BADENCODING;
        }

                params.encoding.name = enc;

Ralf

Reply via email to