ok.... quindi dovrei aver risolto....
mi rimane un solo problema... la syscall dup2()... che non so perchè non ne vuole sapere di andare...
ma non vedo proprio che ci può essere di sbagliato...
questo è il pezzo di codice che mi da problemi:
Codice:
[ .............]
int $0x80 // accept()
xorl %ebx, %ebx // effettuo un controllo sul risultato di accept()
cmpl %eax, %ebx
jb end
movl %eax, %ebx // Nuovo socket, sarà il 1° argomento di dup2
xorl %eax, %eax
movl %edx, %ebx // socket
movb $6, %al // Sistemo 6 (_NR_close) in AL
int $0x80 // close()
xorl %eax, %eax // Azzero EAX
xorl %ecx, %ecx // Azzero ECX, il 2° argomento di dup2 (stdin)
movb $0x3f, %al // Sistemo 63 (_NR_dup2) in AL
int $0x80 // dup2()
xorl %eax, %eax // Azzero EAX
incl %ecx // ora stdout
movb $0x3f, %al // Sistemo 63 (_NR_dup2) in AL
int $0x80 // dup2()
xorl %eax, %eax // Azzero EAX
incl %ecx // ora stderr
movb $0x3f, %al // Sistemo 63 (_NR_dup2) in AL
int $0x80 // dup2()
xorl %eax, %eax //Azzero eax
[......................]
se bypasso le chiamate a dup2 il programma funziona, altrimenti termina inspiegabilmente.... c'è qualcosa che mi impedisce di effettuare queste chiamate?
ci sto impazzendo

grazie mille!