/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Chateitor

 
      Índice del Foro elrincondelc.com -> Programación en Servidores
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
tonilope



Registrado: 16 Oct 2005
Mensajes: 249

MensajePublicado: 05/09/2006 9:09 am
Título: Chateitor

Hola. No sé vosotros, pero una de las cosas que más me gustan a parte de programar es que mis programitas sean probados y recibir opiniones, críticas, etc...

Pues bien, os dejo aquí mi último pasatiempo. Se trata de un CHAT P2P con cifrado RSA (hasta 2048 bits) (Windows). En el .zip incluyo el código fuente (en C por supuesto Wink ) por si a alguien le sirve para algo.

Sería agradable que al menos lo probarais una vez y comentaseis qué os parece.

Salu2 Wink


Ultima edición por tonilope el 02/06/2007 4:47 pm; editado 1 vez
Volver arriba
javi_rubio



Registrado: 09 Ago 2006
Mensajes: 53
Ubicación: Barcelona

MensajePublicado: 05/09/2006 10:46 am
Título:

Solo de ver el codigo ya me he acojonado.... Confused
Esto queda muy por encima de mis posibilidades, y por lo tanto no puedo opinar, pero parece una currada...

Saludos!!

Wink
Volver arriba
tonilope



Registrado: 16 Oct 2005
Mensajes: 249

MensajePublicado: 05/09/2006 2:40 pm
Título:

Cita:
Solo de ver el codigo ya me he acojonado.... Confused
Esto queda muy por encima de mis posibilidades, y por lo tanto no puedo opinar, pero parece una currada...


Jajaja, la verdad es que viendo cómo empezó se me ha ido un poco de las manos xD. Pero aún así, puedes dar tu opinión sobre el funcionamiento (si usas Windows, claro).

Salu2 Wink
Volver arriba
cheroky



Registrado: 22 Sep 2005
Mensajes: 1372
Ubicación: En ecx esperando un call

MensajePublicado: 05/09/2006 3:43 pm
Título:

Esta claro que te lo has currado pero voy hacer unas criticas sin animo de desmerecer el trabajo que has realizado que tiene su merito y habiendolo mirado por encima.

El paso de argumentos tan extenso se podria haber implementado con algo como getopt (POSIX) o similares.

Puesto que usas librerias de terceros no estaria de mas que distribuyeras
un makefile o archivo de proyecto con alguna indicacion de las dependencias que tuviere.

Te faltan algunos inclusiones como winsock.h o winsock2.h en algunos compiladores podria no compilar solo con windows.h.

Fflush no esta definido para la entrada estandar.

Gran parte del codigo se limita a la representacion de datos y a cosas tan triviales como a colorear esta, se podria haber modularizado aparte separando la paja del grano Wink

No entiendo por que usas memoria dinamica como si fuera estatica, es decir allocas memoria con una costante y este bloque es fijo durante toda la vida del programa, es mas eficiente y no hay problemas de posibles memory leaks usando memoria automatica, tampoco usas la logica para comprobar esos mallocs, hay programadores mas o menos noveles que piensan que usando malloc o familia son mas 'geeks' (no digo que sea tu caso).

El programa es bastante inseguro en general, por ejemplo hecha un vistazo a la funcion analiza_mensaje, un potencial overflow, si ademas le añades que no compruebas malloc es una bomba.

S2.
_________________
- Explícito es mejor que implícito.
- Simple es mejor que complejo.
- Complejo es mejor que complicado.
- Plano es mejor que anidado.
- Ralo es mejor que denso.
Volver arriba
kanijo



Registrado: 11 Ago 2006
Mensajes: 88

MensajePublicado: 06/09/2006 12:36 am
Título:

En general estoy de acuerdo con cheroky, creo que abusas de malloc y que haces muy pocas comprobaciones de error con lo que el programa se vuelve una potencial bomba.

Otro dato que creo que puede ayudar a clarificar el código es que muchas funciones como carga_comando, saca_comando etc... usan dos parámetros, uno de entrada y otro exclusivamente de salida. Creo que sería más claro si la función retornase el valor en lugar de pasarlo como parámetro por referencia.

Un saludo
_________________
Hazlo, o no lo hagas, pero no lo intentes.
Volver arriba
tonilope



Registrado: 16 Oct 2005
Mensajes: 249

MensajePublicado: 06/09/2006 4:52 am
Título:

Cita:

El paso de argumentos tan extenso se podria haber implementado con algo como getopt (POSIX) o similares.


No conocía getopt. Lo acabo de mirar y la verdad es que es muy útil. -1

Cita:
Puesto que usas librerias de terceros no estaria de mas que distribuyeras
un makefile o archivo de proyecto con alguna indicacion de las dependencias que tuviere.

En chateitor.h viene comentado que es necesario "linkar" 3 librerías estáticas. (No las incluyo porque son fáciles de conseguir por Inet)

Cita:
Te faltan algunos inclusiones como winsock.h o winsock2.h en algunos compiladores podria no compilar solo con windows.h

En chateitor.h ya está el include de wisock2.h

Cita:
Fflush no esta definido para la entrada estandar.

Cierto. -1

Cita:
Gran parte del codigo se limita a la representacion de datos y a cosas tan triviales como a colorear esta, se podria haber modularizado aparte separando la paja del grano Wink

MUY cierto Smile -1

Cita:
No entiendo por que usas memoria dinamica como si fuera estatica, es decir allocas memoria con una costante y este bloque es fijo durante toda la vida del programa, es mas eficiente y no hay problemas de posibles memory leaks usando memoria automatica, tampoco usas la logica para comprobar esos mallocs, hay programadores mas o menos noveles que piensan que usando malloc o familia son mas 'geeks' (no digo que sea tu caso).

Pues llámalo "geekismo", malas costumbres o yo qué sé, pero llevas razón. -1

Cita:
El programa es bastante inseguro en general, por ejemplo hecha un vistazo a la funcion analiza_mensaje, un potencial overflow, si ademas le añades que no compruebas malloc es una bomba.

Sí y no. Está claro que no he metido ni una comprobación if-else en los mallocs (prisas), pero analiza_mensaje(= tal y como está ahora mismo no puede petar (comprobado) . -0.5

GRACIAS por bajarte el programa y por tu tiempo en probarlo. Se agradecen opiniones (constructivas) de gente avezada que no miran tanto los colorines o si pita de vez en cuando xD

Salu2 Wink


Ultima edición por tonilope el 06/09/2006 4:55 am; editado 2 veces
Volver arriba
tonilope



Registrado: 16 Oct 2005
Mensajes: 249

MensajePublicado: 06/09/2006 4:54 am
Título:

Cita:
Otro dato que creo que puede ayudar a clarificar el código es que muchas funciones como carga_comando, saca_comando etc... usan dos parámetros, uno de entrada y otro exclusivamente de salida. Creo que sería más claro si la función retornase el valor en lugar de pasarlo como parámetro por referencia.

MMMM, subjetivo, pero se admite Smile -0.5

Gracias por opinar.

Salu2 Wink
Volver arriba
cheroky



Registrado: 22 Sep 2005
Mensajes: 1372
Ubicación: En ecx esperando un call

MensajePublicado: 06/09/2006 5:15 am
Título:

tonilope escribió:

cheroky escribió:

El programa es bastante inseguro en general, por ejemplo hecha un vistazo a la funcion analiza_mensaje, un potencial overflow, si ademas le añades que no compruebas malloc es una bomba.



Sí y no. Está claro que no he metido ni una comprobación if-else en los mallocs (prisas), pero analiza_mensaje(= tal y como está ahora mismo no puede petar (comprobado) . -0.5


Honestamente, igual he pecado un poco de presuntuoso por que no lo he probado directamente, pero habra que buscarle un xploit Wink

S2.
_________________
- Explícito es mejor que implícito.
- Simple es mejor que complejo.
- Complejo es mejor que complicado.
- Plano es mejor que anidado.
- Ralo es mejor que denso.
Volver arriba
      Índice del Foro elrincondelc.com -> Programación en Servidores
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com