LINUX.ORG.RU

gсс4 обнаглел


0

0

Это, конечно, хорошо, но по-моему он слишком много себе позволяет. Ладно он выдает при компиляции warning, что функция gets небезопасна, но когда после запуска готовой программы она написала мне "this program uses gets(), which is unsafe." я офигел.

★★

Re: gсс4 обнаглел

может это glibc такой ?

#include <stdio.h>

int main()
{
    char s[32];

    gets(s);

    printf("Got \"%s\"\n", s);

    return 0;
}

$ gcc -o 35 35.c
/tmp/ccWa3i0g.o: In function `main':
35.c:(.text+0x1e): warning: the `gets' function is dangerous and should not be used.

$ ./35
eee
Got "eee"
$

alex_custov ★★★★★ ()
Ответ на: Re: gсс4 обнаглел от alex_custov

Re: gсс4 обнаглел

скорее всего вы правы, очень мало вероятно, что это делает компилятор.

asgard ()

Re: gсс4 обнаглел

Не помню где прочитал - но вроде пустые функции, способ отключать некоторые возможности. Так что использование их нормально.

hibou ★★★★★ ()
Ответ на: Re: gсс4 обнаглел от stassats

Re: gсс4 обнаглел

> И кто-то еще использует gets? Нонконформисты?

думаю, что некоторые просто ниасилили прочитать мануал и сделать соответсвующие выводы:

--
Never use gets(). Because it is impossible to tell without knowing the data in advance how many characters gets() will read, and because gets()
will continue to store characters past the end of the buffer, it is extremely dangerous to use. It has been used to break computer security. Use
fgets() instead.

--

asgard ()
Ответ на: Re: gсс4 обнаглел от php-coder

Re: gсс4 обнаглел

линковщик тут вообще никаким боком. ошибаетесь.

asgard ()

Re: gсс4 обнаглел

сделай strings /file | grep unsafe

для всех подозреваемых файлов -- своего бинарника, /lib/ls.so, и т.п.

dilmah ★★★★★ ()

Re: gсс4 обнаглел

man gets

BUGS
       Never  use  gets().   Because it is impossible to tell without knowing the data in advance how many
       characters gets() will read, and because gets() will continue to store characters past the  end  of
       the  buffer,  it  is extremely dangerous to use.  It has been used to break computer security.  Use
       fgets() instead.

ip1981 ☆☆ ()

Re: gсс4 обнаглел

>Это, конечно, хорошо, но по-моему он слишком много себе позволяет.

2011, GCC 6.6.5:

~ $ gcc -o hello hello.c
hello.c:4: error: Ты — быдло, и потому должен сдохнуть.
~ $

Sphinx ★★☆☆ ()
Ответ на: Re: gсс4 обнаглел от Sphinx

Re: gсс4 обнаглел

это что.. Любимая присказка gcc-писателей -- undefined behaviour может означать что угодно, например форматирование жесткого диска..

dilmah ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.