elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  std::cin puede causar un buffer overflow?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: std::cin puede causar un buffer overflow?  (Leído 2,978 veces)
Sauruxum

Desconectado Desconectado

Mensajes: 117


Ver Perfil WWW
std::cin puede causar un buffer overflow?
« en: 8 Noviembre 2010, 20:47 pm »

Buenas.

Estoy haciendo un programa y ya estoy en las fases finales de escritura del codigo, pero me encuentro en una posicion que me deja con una duda.

A cierto punto hago una cosa del tipo:

Código:
char *f;

...
...

cin>>f;

Mi pregunta es: esto puede en algun modo causar un BOF?
Estuve viendo algunos ejemplos de BOFs pero en especifico no encuentro este, aun asi me queda la duda ya que esto en ningun modo controla el tamaño de la cadena... o no se, quiza me equivoco en el concepto del BOF.

Saludos


En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: std::cin puede causar un buffer overflow?
« Respuesta #1 en: 8 Noviembre 2010, 22:23 pm »

Si obviamente, si la entrada de datos excede el tamaño del buffer, un BOF ocurriría. De por si, ese operador no chequea ningún tipo de limite.

Podes usar getline o utilizar cin con width ya sea usando ::width o setw:

Código
  1.  cin.width (10);
  2.  cin >> str;





En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines