From 8ba88d2b8d8a222206a6541d362c0f2aa24ac5a8 Mon Sep 17 00:00:00 2001 From: tTh Date: Sat, 15 Jul 2023 09:19:50 +0200 Subject: [PATCH] fgets investigations --- code/README.md | 2 +- code/network/Makefile | 8 +++++--- code/network/README.md | 10 ++++++++-- code/network/emc-tnetd.c | 11 ++++++++--- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/code/README.md b/code/README.md index 849a60f..cef1540 100644 --- a/code/README.md +++ b/code/README.md @@ -1,3 +1,3 @@ -# Le code des tetaricks +# Le code des Tetatricks Attention, c'est un peu le fouillis. diff --git a/code/network/Makefile b/code/network/Makefile index 0c11fd8..19abdb5 100644 --- a/code/network/Makefile +++ b/code/network/Makefile @@ -1,8 +1,8 @@ -# +# ------------------- # NETWORK EXPERIMENTS -# +# ------------------- -COPT = -Wall -DDEBUG_LEVEL=1 -pthread +COPT = -Wall -DDEBUG_LEVEL=1 -g -pthread # -------------------------------------------------- # Experimental Specialized Telnet Server @@ -10,3 +10,5 @@ COPT = -Wall -DDEBUG_LEVEL=1 -pthread emc-tnetd: emc-tnetd.c Makefile gcc $< $(COPT) -o $@ + +# -------------------------------------------------- diff --git a/code/network/README.md b/code/network/README.md index 06fd621..f460a7a 100644 --- a/code/network/README.md +++ b/code/network/README.md @@ -11,9 +11,15 @@ que c'est pas si simple que ça. Le fichier qui permet de mettre en évidence les soucis est assez simple pour être facile à suivre : `emc-tnetd.c`. -Première chose : le buffer-overflow. +### Le buffer-overflow. -Deuxième chose : les caractères de controle. +Enfin pas vraiment un dépassement de tampon, mais juste +une inconpréhension sur la sémantique de `fgets` sur les conditions +d'erreur. Et dans un contexte particulier : le FILE * est fourni +par un `fdopen` appliqué sur un socket TCP, mais je ne sais pas +encore si ça a une réelle influence. + +### Les caractères de controle. Stay tuned, film at 11. diff --git a/code/network/emc-tnetd.c b/code/network/emc-tnetd.c index 7ca4ece..09186e5 100644 --- a/code/network/emc-tnetd.c +++ b/code/network/emc-tnetd.c @@ -1,17 +1,22 @@ +/* + * EMC SRVTELNET + */ + #include #include #include -#include +#include #include #include #include -#define TL 20 +#define BINDADDR "127.0.0.1" +#define TL 20 int main(int argc, char *argv[]) { int foo, len, sock; -char *adr_ip = "127.0.0.1"; +char *adr_ip = BINDADDR; int port = 5678; unsigned int addrlen; int connected;