diff --git a/dlls/icmp/icmp_main.c b/dlls/icmp/icmp_main.c index 9a2721d6c071633f1632216f5367bed1afe8516e..0627eef72e8009624ede23a3768fff50a34e530c 100644 --- a/dlls/icmp/icmp_main.c +++ b/dlls/icmp/icmp_main.c @@ -182,6 +182,11 @@ HANDLE WINAPI IcmpCreateFile(VOID) BOOL WINAPI IcmpCloseHandle(HANDLE IcmpHandle) { icmp_t* icp=(icmp_t*)IcmpHandle; + if (IcmpHandle==INVALID_HANDLE_VALUE) { + /* FIXME: in fact win98 seems to ignore the handle value !!! */ + SetLastError(ERROR_INVALID_HANDLE); + return FALSE; + } ISOCK_shutdown(icp->sid,2); free(icp); @@ -217,6 +222,12 @@ DWORD WINAPI IcmpSendEcho( unsigned short id,seq,cksum; int res; + if (IcmpHandle==INVALID_HANDLE_VALUE) { + /* FIXME: in fact win98 seems to ignore the handle value !!! */ + SetLastError(ERROR_INVALID_HANDLE); + return 0; + } + if (ReplySize<sizeof(ICMP_ECHO_REPLY)+ICMP_MINLEN) { SetLastError(IP_BUF_TOO_SMALL); return 0;