[MPlayer-cvslog] r30980 - trunk/stream/http.c

Yuriy Kaminskiy yumkam at mail.ru
Fri Apr 2 01:01:18 CEST 2010


On 31.03.2010 23:42, reimar wrote:
> Author: reimar
> Date: Wed Mar 31 21:42:15 2010
> New Revision: 30980
> 
> Log:
> Sanitize ICY metadata a bit before printing it.
> 
> Modified:
>    trunk/stream/http.c
> 
> Modified: trunk/stream/http.c
> ==============================================================================
> --- trunk/stream/http.c	Wed Mar 31 20:45:00 2010	(r30979)
> +++ trunk/stream/http.c	Wed Mar 31 21:42:15 2010	(r30980)
> @@ -124,8 +124,13 @@ static void scast_meta_read(int fd, stre
>    my_read(fd, &tmp, 1, sc);
>    metalen = tmp * 16;
>    if (metalen > 0) {
> +    int i;
>      char *info = malloc(metalen + 1);
>      unsigned nlen = my_read(fd, info, metalen, sc);
> +    // avoid breaking the user's terminal too much
> +    if (nlen > 256) nlen = 256;
> +    for (i = 0; i < nlen; i++)
> +      if (info[i] && info[i] < 32) info[i] = '?';
This would produce different result depending on 'char' type signedness
([\x80..\xff]).
I think, it should either use isprint(info[i]), or explicit (un)signed char type
for info.
>      info[nlen] = 0;
>      mp_msg(MSGT_DEMUXER, MSGL_INFO, "\nICY Info: %s\n", info);
>      free(info);



More information about the MPlayer-cvslog mailing list