On Mon, Mar 13, 2023 at 6:47 PM Dave Horsfall <dave(a)horsfall.org> wrote:
On Tue, 14 Mar 2023, Dave Horsfall followed himself up:
Trivia: I think it was OpenBSD that nobbled
gets() to print a warning
whenever it was invoked :-)
FreeBSD 10.4 (old, I know):
c.c:1:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int] main()
^~~~
c.c:2:3: warning: implicit declaration of function 'gets' is invalid in
C99
[-Wimplicit-function-declaration]
{ gets(); }
^
2 warnings generated.
/tmp/c-36bc21.o: In function `main':
c.c:(.text+0x4): warning: warning: this program uses gets(), which is unsafe.
aneurin% ./c
warning: this program uses gets(), which is unsafe.
<CR>
aneurin%
On the MacBook (10.13.6 High Sierra):
c.c:1:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
main()
^
c.c:2:3: warning: implicit declaration of function 'gets' is invalid in
C99
[-Wimplicit-function-declaration]
{ gets(); }
^
2 warnings generated.
mackie:tmp dave$ ./c
warning: this program uses gets(), which is unsafe.
<CR>
And it core-dumped,,,
I should hope so! It takes a pointer to a buffer as an argument, and
it appears you elided that. :-D
(I don't have access to my Penguin/OS lapdog
right now.)
I think that it's trying to tel me something :-)
gets: unsafe at any C.
- Dan C.