Foro de elhacker.net

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 :

Código
  1. #include <unistd.h>
  2. #include <stdio.h>
  3.  
  4. int main(){
  5. char path[1024];
  6. getwd(path);
  7. printf("%s",path);
  8. return 0;
  9. }
  10.  

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  ::)