[vdr] get a segmentation fault when starting vdr (backtrace included)

Gerald Dachs vdr at dachsweb.de
Fri Nov 30 11:32:22 CET 2012


Am 2012-11-30 10:17, schrieb Lars Hanisch:
>  Looks like the pointer returned by sscanf is not valid:
>
> 32: bool tComponent::FromString(const char *s)
> 33: {
> 34:   unsigned int Stream, Type;
> 35:   int n = sscanf(s, "%X %02X %7s %a[^\n]", &Stream, &Type,
> language, &description); // 7 = MAXLANGCODE2 - 1
> 36:   if (n != 4 || isempty(description)) {
> 37:      free(description);
> 38:      description = NULL;
> 39:      }
> 40:   stream = Stream;
> 41:   type = Type;
> 42:   return n >= 3;
> 43: }

 From man sscanf:

        The GNU C library supports a nonstandard extension that causes 
the library to
        dynamically allocate a string of sufficient size for input 
strings for the %s
        and %a[range] conversion specifiers.

This is the reason why it doesn't work with ulibc.

Gerald




More information about the vdr mailing list