On Wed, Nov 06 2019, Hiltjo Posthuma <[email protected]> wrote:

[...]

> Thanks for reviewing the patch. Sadly I noticed and made a stupid mistake. 
> When
> NOSSL is set, but SMALL is not set.  It will set scheme = HTTPS_URL for the
> file handler.
>
> Below is the full updated patch:

I think we don't want to maintain tons of #ifdef combinations, but
applying your diff just made sense after I tried to modify nearby code
and I noticed the inconsistencies.

Committed, thanks!

> diff --git usr.bin/ftp/fetch.c usr.bin/ftp/fetch.c
> index 4c7e14b04bd..4511fb29fa1 100644
> --- usr.bin/ftp/fetch.c
> +++ usr.bin/ftp/fetch.c
> @@ -201,14 +201,14 @@ url_get(const char *origline, const char *proxyenv, 
> const char *outfile, int las
>       char *proxyhost = NULL;
>  #ifndef NOSSL
>       char *sslpath = NULL, *sslhost = NULL;
> -     char *full_host = NULL;
> -     const char *scheme;
>       int ishttpurl = 0, ishttpsurl = 0;
>  #endif /* !NOSSL */
>  #ifndef SMALL
> +     char *full_host = NULL;
> +     const char *scheme;
>       char *locbase;
>       struct addrinfo *ares = NULL;
> -#endif
> +#endif /* !SMALL */
>       struct tls *tls = NULL;
>       int status;
>       int save_errno;
> @@ -221,8 +221,10 @@ url_get(const char *origline, const char *proxyenv, 
> const char *outfile, int las
>               errx(1, "Can't allocate memory to parse URL");
>       if (strncasecmp(newline, HTTP_URL, sizeof(HTTP_URL) - 1) == 0) {
>               host = newline + sizeof(HTTP_URL) - 1;
> -#ifndef SMALL
> +#ifndef NOSSL
>               ishttpurl = 1;
> +#endif /* !NOSSL */
> +#ifndef SMALL
>               scheme = HTTP_URL;
>  #endif /* !SMALL */
>       } else if (strncasecmp(newline, FTP_URL, sizeof(FTP_URL) - 1) == 0) {
> @@ -234,12 +236,16 @@ url_get(const char *origline, const char *proxyenv, 
> const char *outfile, int las
>       } else if (strncasecmp(newline, FILE_URL, sizeof(FILE_URL) - 1) == 0) {
>               host = newline + sizeof(FILE_URL) - 1;
>               isfileurl = 1;
> -#ifndef NOSSL
> +#ifndef SMALL
>               scheme = FILE_URL;
> +#endif /* !SMALL */
> +#ifndef NOSSL
>       } else if (strncasecmp(newline, HTTPS_URL, sizeof(HTTPS_URL) - 1) == 0) 
> {
>               host = newline + sizeof(HTTPS_URL) - 1;
>               ishttpsurl = 1;
> +#ifndef SMALL
>               scheme = HTTPS_URL;
> +#endif /* !SMALL */
>  #endif /* !NOSSL */
>       } else
>               errx(1, "url_get: Invalid URL '%s'", newline);
> @@ -1066,8 +1072,10 @@ improper:
>       warnx("Improper response from %s", host);
>  
>  cleanup_url_get:
> -#ifndef NOSSL
> +#ifndef SMALL
>       free(full_host);
> +#endif /* !SMALL */
> +#ifndef NOSSL
>       free(sslhost);
>  #endif /* !NOSSL */
>       ftp_close(&fin, &tls, &fd);

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to