Re: fdisk: make use of getline(3)

2021-01-30 Thread Todd C . Miller
On Sat, 30 Jan 2021 18:02:10 +0100, Christian Weisgerber wrote:

> Replace fgetln(3) with getline(3).

OK millert@

 - todd



fdisk: make use of getline(3)

2021-01-30 Thread Christian Weisgerber
Replace fgetln(3) with getline(3).

OK?

Index: sbin/fdisk/misc.c
===
RCS file: /cvs/src/sbin/fdisk/misc.c,v
retrieving revision 1.63
diff -u -p -r1.63 misc.c
--- sbin/fdisk/misc.c   3 Jul 2019 03:24:01 -   1.63
+++ sbin/fdisk/misc.c   30 Jan 2021 16:48:36 -
@@ -64,20 +64,18 @@ unit_lookup(char *units)
 int
 string_from_line(char *buf, size_t buflen)
 {
-   char *line;
-   size_t sz;
+   static char *line;
+   static size_t sz;
+   ssize_t len;
 
-   line = fgetln(stdin, &sz);
-   if (line == NULL)
+   len = getline(&line, &sz, stdin);
+   if (len == -1)
return (1);
 
-   if (line[sz - 1] == '\n')
-   sz--;
-   if (sz >= buflen)
-   sz = buflen - 1;
+   if (line[len - 1] == '\n')
+   line[len - 1] = '\0';
 
-   memcpy(buf, line, sz);
-   buf[sz] = '\0';
+   strlcpy(buf, line, buflen);
 
return (0);
 }
-- 
Christian "naddy" Weisgerber  na...@mips.inka.de