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