From 1a1ac7a5637d914db02583bf99860e25ab4d4afe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Fri, 12 Dec 2003 14:39:26 +0000 Subject: [PATCH] fgets() coz Axel wants it :p git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5661 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/bin/mkdos/mkdos.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/apps/bin/mkdos/mkdos.cpp b/src/apps/bin/mkdos/mkdos.cpp index 169fa836e8..845b2b2e1d 100644 --- a/src/apps/bin/mkdos/mkdos.cpp +++ b/src/apps/bin/mkdos/mkdos.cpp @@ -433,15 +433,13 @@ status_t Initialize(int fatbits, const char *device, const char *label, bool nop printf("Initializing will erase all existing data on the drive.\n"); printf("Do you wish to proceed? "); char answer[1000]; - char *p = answer; + char *p; memset(answer, 0, 1000); fflush(stdout); - while ((p < answer + 1000) && (read(0, p, 1) == 1) && (*p != '\n') && (*p != '\r')) - p++; - *p = '\0'; - - //scanf("%s",answer); //XXX who wants to fix this buffer overflow? - if ((strlen(answer) < 1) || (0 != strncasecmp(answer, "yes", strlen(answer)))) { + p = fgets(answer, 1000, stdin); + if (p && (p=strchr(p, '\n'))) + *p = '\0'; /* remove newline */ + if ((p == NULL) || (strlen(answer) < 1) || (0 != strncasecmp(answer, "yes", strlen(answer)))) { printf("drive NOT initialized\n"); close(fd); return B_OK;