On Mar 23 23:19:02, patrick keshishian wrote:
> 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?

The two bytes of "%s" will be replaced,
so I think 'command' has enough bytes.


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

Reply via email to