On Fri, Mar 23, 2012 at 11:09 PM, Jan Stary <h...@stare.cz> wrote:
> SoX uses wget(1) to play(1) remote files such as streaming radios.
> That is in fact a bug in the port (RUN_DEPENDS). Rather than
> adding wget to DEPENDS, the small patch below replaces that
> functionality with the base ftp(1).
>
> REVISION needs to be bumped I guess.
>
>        Jan
>
>
> $OpenBSD$
> --- src/formats.c.orig  Sat Mar 24 06:29:07 2012
> +++ src/formats.c       Sat Mar 24 06:29:53 2012
> @@ -348,7 +348,7 @@ static int sox_checkformat(sox_format_t * ft)
>   return SOX_SUCCESS;
>  }
>
> -static sox_bool is_url(char const * text) /* detects only wget-supported 
> URLs */
> +static sox_bool is_url(char const * text)
>  {
>   return !(
>       strncasecmp(text, "http:" , (size_t)5) &&
> @@ -385,7 +385,7 @@ static FILE * xfopen(char const * identifier, char con
>   else if (is_url(identifier)) {
>     FILE * f = NULL;
>  #ifdef HAVE_POPEN
> -    char const * const command_format = "wget --no-check-certificate -q -O- 
> \"%s\"";
> +    char const * const command_format = "ftp -a -V -o - \"%s\"";
>     char * command = lsx_malloc(strlen(command_format) + strlen(identifier));

Whoa ... does lsx_malloc() add an extra byte for the null terminator
or are we looking at a buffer overrun here?

>     sprintf(command, command_format, identifier);
>     f = popen(command, POPEN_MODE);

--patrick

Reply via email to