Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: <<<-Basura->>> en 14 Septiembre 2011, 19:03 PM

Título: getwd() warning!
Publicado por: <<<-Basura->>> en 14 Septiembre 2011, 19:03 PM
Hola bueno estaba provando este código :


#include <unistd.h>
#include <stdio.h>

int main(){
char path[1024];
getwd(path);
printf("%s",path);
return 0;
}


y compila bien y sirve bien pero el problema que tengo es que me tira warning, y no se porque es, me los tira exactamente en la línea de " getwd(path) "

dicen:
test.cpp:6: warning: 'char* getwd(char*)' is deprecated (declared at /usr/include/unistd.h:522)

la verdad quiero saber porque es y como repararlo
Título: Re: getwd() warning!
Publicado por: Eternal Idol en 14 Septiembre 2011, 19:56 PM
https://buildsecurityin.us-cert.gov/bsi/articles/knowledge/coding/760-BSI.html

http://linux.die.net/man/3/getcwd

http://www.gnu.org/s/hello/manual/libc/Working-Directory.html

En pocas palabras getwd es una funcion insegura, no recibe el tamaño de la cadena, usa getcwd que si lo hace.
Título: Re: getwd() warning!
Publicado por: <<<-Basura->>> en 15 Septiembre 2011, 06:59 AM
Grx ya entendí, al usar esa función lo que puede darse es una falla de seguridad, de desbordamiento de buffer ^_^
Título: Re: getwd() warning!
Publicado por: Eternal Idol en 15 Septiembre 2011, 10:07 AM
Si, de nadas  ::)