Compilar ele at� compila que eu lembre, mas ele d� esse aviso porque a
fun��o gets() n�o especifica um tamanho m�ximo para a string que ser�
capturada.
Isso deixa o seu programa vulner�vel, pois algu�m que tenha
conhecimento t�cnico o suficiente pode passar uma string t�o grande que
ultrapasse o tamanho que voc� escolheu para aloca��o da dita (overflow),
gravando o que ele quiser em outras partes do programa.
Sim, concordo que este truque n�o � l� muito trivial, mas �
perfeitamente poss�vel e muita gente usa... Ent�o � melhor prevenir :)
Use o fgets no lugar do gets. Ele � basicamente a mesma coisa, s� que
voc� tem que especificar a fonte dos dados (no caso, a entrada padr�o
stdin) e o tamanho m�ximo do buffer (N�o esque�a o NULL que deve vir no
final da string, que tamb�m conta). N�o que isso seja uma grande
complica��o... :)
-----------------
"Cogito cogito, ergo cogito sunt."
(Penso que penso, logo penso que existo)
O Mentat
> Algu�m sabe me dizer porque o gcc no linux n�o compila um programa que
> possua o string gets ?
> o que devo fazer para o gcc ignorar o string e compilar mesmo assim ?
>
> PS: aparece uma mensagem dizendo que o string gets � dangerous para o
> sistema Unix dizendo que n�o seria aconselh�vel us�-lo. ou
> coisa do tipo.
Assinantes em 30/11/2001: 2411
Mensagens recebidas desde 07/01/1999: 144044
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
mailto:[EMAIL PROTECTED]