LINUX.ORG.RU

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


0

0

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

★★

может это 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 ★★★★★
()
Ответ на: комментарий от alex_custov

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

asgard
()

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

hibou ★★★★★
()
Ответ на: комментарий от stassats

> И кто-то еще использует 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
()
Ответ на: комментарий от php-coder

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

asgard
()

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

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

dilmah ★★★★★
()

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 ☆☆
()

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

2011, GCC 6.6.5:

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

Sphinx ★★☆☆
()
Ответ на: комментарий от Sphinx

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

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