Login Barrapunto
Microsoft planea dejar de usar memcpy en su ciclo de desarrollo
meta coder nos cuenta: «En En Microsoft planean poner incorporar memcpy a la lista de funciones en desuso de la librería de C dentro de su ciclo de desarrollo seguro y recomendar el uso de otras alternativas como memcpy_s ¿Qué opináis de esto?»
¿Medida acertada o sobreprotección a los programadores? La entrada original en la bitácora de Security Development Lifecycle (SDL). También lo comentan en Slashdot y reddit.
Historias relacionadas
[+]
Software Libre: Debian cambia de librería de C 93 comentarios
mig21 nos cuenta: «Vía reddit leo que Debian va a sustituir la librería de C de GNU, GLIBC por la Embedded GLIBC (EGLIBC). Al parecer los motivos son sobre todo una mayor apertura y disponibilidad para soportar distintas arquitecturas (sobre todo empotradas), la existencia de una rama estable con actualizaciones de seguridad, el soporte de más shells que bash, componentes configurables y una mejor batería de tests. El modelo del bazar en funcionamiento».
Este hilo ha sido archivado.
No pueden publicarse nuevos comentarios.
Microsoft planea dejar de usar memcpy en su ciclo de desarrollo
|
Log in/Crear cuenta
| Top
| 51 comentarios
| Buscar hilo
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.

Tonterías de Microsoft
(Puntos:4, Inspirado)( http://guslibu.awardspace.com/ | Última bitácora: Jueves, 08 Julio de 2010, 08:35h )
En primer lugar, este cambio exige modificar una cantidad de código inmensa. No sólo hay que cargar a cuestas con el parámetro adicional que memcpy_s [microsoft.com] exige, sino que además hay que procesar el nuevo valor devuelto por la función y decidir qué hacer cuando se produzca un desbordamiento que no debería producirse nunca. ¿Qué harías tú? ¿Salir del programa, lanzar una excepción (C++), cancelar el trabajo y devolverlo a la función padre? ¿Y la función padre también habrá que cambiarla?
Pero no sólo esto, porque si se equivocan en el valor que le pasan como tamaño del "buffer" destino, entonces ojalá se equivoquen por defecto o estaremos en las mismas, y si se olvidan de recoger el valor devuelto (o lo hacen mal), entonces ojalá en ejecución no supere el límite establecido, porque el "buffer" quedará sin cambios y el programa no hará lo que tiene que hacer, ni se va a acercar, aunque si en ese caso falla y quieres que copie todo lo que pueda siempre puedes volver a llamar otra vez a strcpy_s reduciendo la cantidad copiada al tamaño del buffer, y si vuelve a dar error por un puntero NULL, entonces... jajajaja
¿En qué puñetas están pensando estos de Redmond?
Re:Tonterías de Microsoft
(Puntos:4, Divertido)Poner una pantalla azul, esta claro.
Un poco estúpido, la verdad...
(Puntos:4, Interesante)Es mucho menos engorroso, desde el punto de vista del programador perezoso, ignorar un warning que cambiar una llamada a una función. Del mismo modo que les resulta menos engorroso hacer la llamada sin comprobar los tamaños.
Vamos, que no creo que esto vaya a solucionar nada en absoluto. Los que lo hacían mal seguirán haciéndolo mal. Los que lo hacían bien seguirán haciéndolo bien. Si quieren cambiar algo, que eliminen el memcpy de la lista de llamadas.
De todos modos, no me parece que memcpy sea una llamada especialmente arriesgada. Me gustaría saber cuántos desbordamientos son debidos a memcpy. La peligrosa era strcpy, que se "sustituyó" por la versión segura, strncpy, que justamente añade una comprobación del tipo de memcpy.
warning C4996
(Puntos:4, Interesante)warning: C4996: 'strcpy_s': This function or variable may be unsafe. Consider using strcpy_s instead.
warning: C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead.
warning: C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead.
warning: C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
warning: C4996: 'fprintf': This function or variable may be unsafe. Consider using fprintf_s instead.
warning: C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead.
Aprecio mucho los esfuerzos de Microsoft por hacer la librería estándar más segura, aunque el C nunca fué diseñado para ser un lenguaje de programación seguro. Pero sería importante que estas mejoras las propuesieran en futuras revisiones de ANSI C/C++ y mientras tanto ceñirse al estándar. Así facilitaría a los programadores el hacer códigos más exportables y evitarnos esos molestos warnings.
No es mala idea
(Puntos:2, Inspirado)memcpy(pDst, pSrc, MIN(lDst, nBytes));
A:
memcpy_s(pDst, lDst, pSrc, nBytes);
Que es más corto y más natural (parejas buffer - tamaño). Además no hay una macro de por medio, "obliga" a tener en cuenta lDst, etc.
IMHO Es un pequeño cambio y la ganancia también es pequeño pero el balance es positivo.
Re:El topico de la inseguridad de Win
(Puntos:3, Interesante)( Última bitácora: Jueves, 31 Mayo de 2007, 20:41h )
Tu comparación es como decir que en todo EEUU se producen 5 accidentes más de tráfico que en España
Re:El topico de la inseguridad de Win
(Puntos:3, Informativo)( http://malkavian.homelinux.org/ )
Además de lo que te dice Vacatalada, esta el hecho del tiempo en que tardan en arreglarse las vulnerabilidades, que es muy importante.
Yo tengo otras estadísticas mucho más reconocidas que una imagen de origen desconocido (Hay que bajar para abajo para ver las gráficas de tarta):
Vulnerabilidades de Win XP Professional [secunia.com]Vulnerabilidades de Win Vista [secunia.com]
Vulnerabilidades de Ubuntu 8.10 [secunia.com]
Vulnerabilidades de Ubuntu 9.04 [secunia.com]
Javier Ortega Conde (Malkavian) :[ - Miembro del grupo Gnu LinUxuarios de Bizkaia
Re:M$ un negocio redondo
(Puntos:2)( http://web.iesrodeira.com | Última bitácora: Sábado, 25 Abril de 2009, 19:50h )
Xavi.
Re:Desición acertada
(Puntos:1)Re:Lo que debería hacer...
(Puntos:2)( http://www.verborreaesporadica.info/ | Última bitácora: Martes, 30 Noviembre de 2010, 16:52h )
RAE:
recursividad.
1. f. Véase recursividad.