Re: Proposed patch for PR misc/18466

2000-05-14 Thread Matthew Dillon

:Matthew Dillon <[EMAIL PROTECTED]> writes:
:> Index: anonFTP.c
:> ===
:> RCS file: /home/ncvs/src/release/sysinstall/anonFTP.c,v
:> retrieving revision 1.29
:> diff -u -r1.29 anonFTP.c
:> --- anonFTP.c2000/01/25 19:16:31 1.29
:> +++ anonFTP.c2000/05/14 17:44:11
:> @@ -217,7 +217,7 @@
:>  SAFE_STRCPY(tconf.upload, FTP_UPLOAD);
:>  SAFE_STRCPY(tconf.comment, FTP_COMMENT);
:>  SAFE_STRCPY(tconf.homedir, FTP_HOMEDIR);
:
:why not call strlcpy instead of the SAFE_STRCPY macro that calls the
:sstrncpy and the strncpy?

I didn't write SAFE_STRCPY.  Replacement is a good idea, but
would be future work.

:> -char *line = malloc(21);
:> -sprintf(line, "USA_RESIDENT=%s\n", USAResident ? "YES" : "NO");
:> +char *line = malloc(URMSIZE);
:> +snprintf(line, URMSIZE, "USA_RESIDENT=%s\n", USAResident ? "YES" : "NO");
:>  lines[0] = line;
:>  nlines = 1;
:>  }
:
:Why not call asprintf/safe_asprintf here?

Look a little down in the code, you will notice that it rewrites 
the buffer.  asprintf only allocates what it needs, which may
not be enough.

(If I had written it I would have simply reallocated the buffer,
but since I didn't this would be a future improvement to make).

:> +void
:> +safe_asprintf(char **pptr, const char *ctl, ...)
:
:It would seem to me a good idea to make a v-version of this function,
:even if there's no place right now that wants to call it.
:
:/assar

Under normal conditions, yes, but there is not a single line of code
in sysinstall which uses varargs, and it only takes 10 seconds to
add a v-version so we'll leave that for another pass (perhaps a
later pass to get rid of all the static buffers).

-Matt
Matthew Dillon 
<[EMAIL PROTECTED]>


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Proposed patch for PR misc/18466

2000-05-14 Thread Assar Westerlund

Matthew Dillon <[EMAIL PROTECTED]> writes:
> Index: anonFTP.c
> ===
> RCS file: /home/ncvs/src/release/sysinstall/anonFTP.c,v
> retrieving revision 1.29
> diff -u -r1.29 anonFTP.c
> --- anonFTP.c 2000/01/25 19:16:31 1.29
> +++ anonFTP.c 2000/05/14 17:44:11
> @@ -217,7 +217,7 @@
>  SAFE_STRCPY(tconf.upload, FTP_UPLOAD);
>  SAFE_STRCPY(tconf.comment, FTP_COMMENT);
>  SAFE_STRCPY(tconf.homedir, FTP_HOMEDIR);

why not call strlcpy instead of the SAFE_STRCPY macro that calls the
sstrncpy and the strncpy?

> Index: config.c
> ===
> RCS file: /home/ncvs/src/release/sysinstall/config.c,v
> retrieving revision 1.156.2.1
> diff -u -r1.156.2.1 config.c
> --- config.c  2000/03/30 08:12:02 1.156.2.1
> +++ config.c  2000/05/14 17:46:38
> @@ -373,8 +375,8 @@
>  FILE *fp;
>  
>  if (!file_readable(config)) {
> - char *line = malloc(21);
> - sprintf(line, "USA_RESIDENT=%s\n", USAResident ? "YES" : "NO");
> + char *line = malloc(URMSIZE);
> + snprintf(line, URMSIZE, "USA_RESIDENT=%s\n", USAResident ? "YES" : "NO");
>   lines[0] = line;
>   nlines = 1;
>  }

Why not call asprintf/safe_asprintf here?

> Index: misc.c
> ===
> RCS file: /home/ncvs/src/release/sysinstall/misc.c,v
> retrieving revision 1.40
> diff -u -r1.40 misc.c
> --- misc.c1999/11/27 14:33:07 1.40
> +++ misc.c2000/05/14 17:55:41
> @@ -34,6 +34,7 @@
>  #include "sysinstall.h"
>  #include 
>  #include 
> +#include 
>  #include 
>  #include 
>  #include 
> @@ -209,6 +210,17 @@
>  if (!ptr)
>   msgFatal("Out of memory!");
>  return ptr;
> +}
> +
> +void
> +safe_asprintf(char **pptr, const char *ctl, ...)
> +{
> +va_list va;
> +
> +va_start(va, ctl);
> +if (vasprintf(pptr, ctl, va) < 0)
> + msgFatal("Out of memory!");
> +va_end(va);
>  }
>  /* Create a path biased from the VAR_INSTALL_ROOT variable (if not /) */

It would seem to me a good idea to make a v-version of this function,
even if there's no place right now that wants to call it.

/assar


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message