X-Authentication-Warning: delorie.com: mail set sender to djgpp-workers-bounces using -f X-Recipient: djgpp-workers AT delorie DOT com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=wGKy3DzNVK5hPzIriVLJwc6ggFHie4briDAIogekUZo=; b=ZtKLprxTHeBIx5htboVIORjPm2nOO9lLoLmR4cqrV+Ty41EFRq1IwQLHF+/spDHBBX g1p2HIo5zZKfTNYAP7oAFuTX9+D5ZaPWyGdyqqyLVv+VefN2PbDo5guCR8/VfgHWdyGh SLxy9mBz4N1bdUlUgh/gMKrQfKAA/TPnveARM= MIME-Version: 1.0 In-Reply-To: References: <201107021926 DOT 48563 DOT juan DOT guerrero AT gmx DOT de> Date: Sat, 2 Jul 2011 20:47:28 +0300 Message-ID: Subject: Re: [patch] kill gets() usage in stubedit.c, use fgets() From: Ozkan Sezer To: djgpp-workers AT delorie DOT com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id p62HlZCX016256 Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Sat, Jul 2, 2011 at 8:40 PM, Ozkan Sezer wrote: > On Sat, Jul 2, 2011 at 8:26 PM, Juan Manuel Guerrero > wrote: >> Am Samstag, 2. Juli 2011 schrieb Ozkan Sezer: >>> Compilation of stubedit.c warns: >>> /tmp/cc0xwkwD.o: In function `pose_question': >>> /djgpp-20110630/src/stub/stubedit.c:92: warning: the `gets' function >>> is dangerous and should not be used. >> [snip] >> >> Are there more cases where gets is used?  If so they should be fixed all >> together. >> > > Quick scanning reveals: > > src/utils/djtar/djtar.c: line #208:  Missed this because I never use > it, not needed in cross-tools > Here is a patch changing djtar.c in a similar way. Index: djtar.c =================================================================== RCS file: /cvs/djgpp/djgpp/src/utils/djtar/djtar.c,v retrieving revision 1.12 diff -u -p -r1.12 djtar.c --- djtar.c 26 Feb 2011 19:52:07 -0000 1.12 +++ djtar.c 2 Jul 2011 17:45:34 -0000 @@ -205,10 +205,19 @@ change(char *fname, const char *problem, fprintf(log_out, " %s %s\n new name : ", problem, fname); fflush(log_out); new[0] = '\0'; - if (!gets(new)) + pos = fgets(new, sizeof(new), stdin); + if (!pos) Fatal("EOF while reading stdin"); + for (; *pos; ++pos) + { + if (*pos == '\n') + { + *pos = '\0'; + break; + } + } - if ((strcmp(new, "") == 0) && (isadir == 2)) + if ((new[0] == '\0') && (isadir == 2)) return 0; if (isadir) isadir=1; ch = (CHANGE *)xmalloc(sizeof(CHANGE)); > src/libc/dos/dir/fnsplit.c::main() line #119 (but that's only  TEST code, > not compiled into lib.) > >> Regards, >> Juan M. guerrero >> > > -- > O.S. > Regards. -- O.S.