- Timestamp:
- Aug 3, 2012, 7:26:43 PM (9 years ago)
- Location:
- zzuf/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
zzuf/trunk/msvc/config.h
r4832 r4834 29 29 #define HAVE_CREATEFILEA 1 30 30 #define HAVE_CREATEFILEW 1 31 #define HAVE_CREATEFILEMAPPINGA 1 32 #define HAVE_CREATEFILEMAPPINGW 1 33 #define HAVE_MAPVIEWOFFILE 1 31 34 /* #undef HAVE_DLADDR */ 32 35 /* #undef HAVE_DLFCN_H */ … … 74 77 #define HAVE_PROCESS_H 1 75 78 #define HAVE_READFILE 1 79 #define HAVE_READFILEEX 1 76 80 /* #undef HAVE_READV */ 77 81 #define HAVE_RECV 1 -
zzuf/trunk/src/libzzuf/lib-win32.c
r4832 r4834 58 58 LPOVERLAPPED); 59 59 #endif 60 #if defined HAVE_READFILEEX 61 static BOOL (__stdcall *ORIG(ReadFileEx))(HANDLE, LPVOID, DWORD, LPDWORD, 62 LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); 63 #endif 64 #if defined HAVE_CREATEFILEMAPPINGA 65 static HANDLE (__stdcall *ORIG(CreateFileMappingA))(HANDLE, LPSECURITY_ATTRIBUTES, 66 DWORD, DWORD, DWORD, LPCSTR); 67 #endif 68 #if defined HAVE_CREATEFILEMAPPINGW 69 static HANDLE (__stdcall *ORIG(CreateFileMappingW))(HANDLE, LPSECURITY_ATTRIBUTES, 70 DWORD, DWORD, DWORD, LPCWSTR); 71 #endif 72 #ifdef HAVE_MAPVIEWOFFILE 73 static LPVOID (__stdcall *ORIG(MapViewOfFile))(HANDLE, DWORD, DWORD, DWORD, SIZE_T); 74 #endif 60 75 #if defined HAVE_CLOSEHANDLE 61 76 static BOOL (__stdcall *ORIG(CloseHandle))(HANDLE); … … 142 157 ret = ORIG(ReadFile)(hFile, lpBuffer, nNumberOfBytesToRead, 143 158 lpNumberOfBytesRead, lpOverlapped); 144 debug("ReadFile(%#08x, % #08x, %#08x, %#08x, %#08x) = %s",159 debug("ReadFile(%#08x, %p, %#08x, %#08x, %p) = %s", 145 160 hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped, (ret ? "TRUE" : "FALSE")); 146 161 … … 159 174 #endif 160 175 176 #if defined HAVE_READFILEEX 177 BOOL __stdcall NEW(ReadFileEx)(HANDLE hFile, LPVOID lpBuffer, 178 DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, 179 LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine) 180 { 181 BOOL ret; 182 183 ret = ORIG(ReadFileEx)(hFile, lpBuffer, nNumberOfBytesToRead, 184 lpNumberOfBytesRead, lpOverlapped, lpCompletionRoutine); 185 186 debug("ReadFileEx(%#08x, %p, %#08x, %p, %p, %p) = %s", 187 hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped, lpCompletionRoutine, (ret ? "TRUE" : "FALSE")); 188 189 if (!_zz_ready || !_zz_iswatched(hFile) /*|| !_zz_hostwatched(hFile)*/ || _zz_islocked(hFile) || !_zz_isactive(hFile)) 190 return ret; 191 192 if (ret) 193 { 194 DWORD bytes_read = lpNumberOfBytesRead ? *lpNumberOfBytesRead : nNumberOfBytesToRead; 195 debug("fuzzing file %#08x\n", hFile); 196 _zz_fuzz(hFile, lpBuffer, bytes_read); 197 _zz_addpos(hFile, bytes_read); 198 } 199 return ret; 200 } 201 #endif 202 203 #if defined HAVE_CREATEFILEMAPPINGA 204 HANDLE __stdcall NEW(CreateFileMappingA)(HANDLE hFile, LPSECURITY_ATTRIBUTES lpAttributes, 205 DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, 206 LPCSTR lpName) 207 { 208 HANDLE ret; 209 ret = ORIG(CreateFileMappingA)(hFile, lpAttributes, 210 flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, 211 lpName); 212 213 debug("CreateFileMappingA(%#08x, %#08x, %#08x, %#08x, %#08x, %s) = %#08x", 214 hFile, lpAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName, ret); 215 216 if (ret == NULL) return ret; 217 218 if (!_zz_ready || !_zz_iswatched(hFile) /*|| !_zz_hostwatched(hFile)*/ || _zz_islocked(hFile) || !_zz_isactive(hFile) || _zz_islocked(-1)) 219 return ret; 220 221 debug("handle %#08x is registered", ret); 222 _zz_register(ret); 223 224 return ret; 225 } 226 #endif 227 228 #if defined HAVE_CREATEFILEMAPPINGW 229 HANDLE __stdcall NEW(CreateFileMappingW)(HANDLE hFile, LPSECURITY_ATTRIBUTES lpAttributes, 230 DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, 231 LPCWSTR lpName) 232 { 233 HANDLE ret; 234 ret = ORIG(CreateFileMappingW)(hFile, lpAttributes, 235 flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, 236 lpName); 237 238 debug("CreateFileMappingW(%#08x, %#08x, %#08x, %#08x, %#08x, %S) = %#08x", 239 hFile, lpAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName, ret); 240 241 if (ret == NULL) return ret; 242 243 if (!_zz_ready || !_zz_iswatched(hFile) /*|| !_zz_hostwatched(hFile)*/ || _zz_islocked(hFile) || !_zz_isactive(hFile) || _zz_islocked(-1)) 244 return ret; 245 246 debug("handle %#08x is registered", ret); 247 _zz_register(ret); 248 249 return ret; 250 } 251 #endif 252 253 #ifdef HAVE_MAPVIEWOFFILE 254 LPVOID __stdcall NEW(MapViewOfFile)(HANDLE hFileMappingObject, DWORD dwDesiredAccess, 255 DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, 256 SIZE_T dwNumberOfBytesToMap) 257 { 258 LPVOID ret; 259 ret = ORIG(MapViewOfFile)(hFileMappingObject, dwDesiredAccess, 260 dwFileOffsetHigh, dwFileOffsetLow, 261 dwNumberOfBytesToMap); 262 263 debug("MapViewOfFile(%#08x, %#08x, %#08x, %#08x, %#08x) = %p", 264 hFileMappingObject, dwDesiredAccess, dwFileOffsetHigh, dwFileOffsetLow, dwNumberOfBytesToMap, ret); 265 266 return ret; 267 } 268 #endif 269 161 270 /* 162 271 * CloseHandle … … 190 299 DIVERT(CreateFileA), 191 300 DIVERT(CreateFileW), 301 DIVERT(CreateFileMappingA), 302 DIVERT(CreateFileMappingW), 303 DIVERT(MapViewOfFile), 192 304 DIVERT(ReadFile), 305 DIVERT(ReadFileEx), 193 306 DIVERT_END 194 307 }; -
zzuf/trunk/src/libzzuf/network.c
r4685 r4834 29 29 # include <netinet/in.h> 30 30 # include <arpa/inet.h> 31 #elif defined HAVE_WINSOCK2_H 32 # include <WinSock2.h> 33 # include <WS2tcpip.h> 31 34 #endif 32 35 … … 36 39 #include "network.h" 37 40 38 #if defined HAVE_SYS_SOCKET_H 41 #if defined HAVE_SYS_SOCKET_H || defined (HAVE_WINDOWS_H) 39 42 static unsigned int get_socket_ip(int); 40 43 static int host_in_list(unsigned int, unsigned int const *); … … 54 57 void _zz_network_init(void) 55 58 { 56 ; 59 #ifdef HAVE_WINSOCK2_H 60 WSADATA wsa_data; 61 WSAStartup(MAKEWORD(2,2), &wsa_data); /* LATER: handle error */ 62 #endif 57 63 } 58 64 59 65 void _zz_network_fini(void) 60 66 { 61 #if defined HAVE_SYS_SOCKET_H 67 #if defined HAVE_SYS_SOCKET_H || defined (HAVE_WINDOWS_H) 62 68 if(ports != static_ports) 63 69 free(ports); … … 67 73 free(deny); 68 74 #endif 75 76 #if defined HAVE_WINSOCK2_H 77 WSACleanup(); /* LATER: handle error */ 78 #endif 69 79 } 70 80 71 81 void _zz_allow(char const *allowlist) 72 82 { 73 #if defined HAVE_SYS_SOCKET_H 83 #if defined HAVE_SYS_SOCKET_H || defined (HAVE_WINDOWS_H) 74 84 allow = create_host_list(allowlist, static_allow); 75 85 #endif … … 78 88 void _zz_deny(char const *denylist) 79 89 { 80 #if defined HAVE_SYS_SOCKET_H 90 #if defined HAVE_SYS_SOCKET_H || defined (HAVE_WINDOWS_H) 81 91 deny = create_host_list(denylist, static_deny); 82 92 #endif … … 85 95 void _zz_ports(char const *portlist) 86 96 { 87 #if defined HAVE_SYS_SOCKET_H 97 #if defined HAVE_SYS_SOCKET_H || defined (HAVE_WINDOWS_H) 88 98 ports = _zz_allocrange(portlist, static_ports); 89 99 #endif … … 92 102 int _zz_portwatched(int port) 93 103 { 94 #if defined HAVE_SYS_SOCKET_H 104 #if defined HAVE_SYS_SOCKET_H || defined (HAVE_WINDOWS_H) 95 105 if(!ports) 96 106 return 1; … … 104 114 int _zz_hostwatched(int sock) 105 115 { 106 #if defined HAVE_SYS_SOCKET_H 116 #if defined HAVE_SYS_SOCKET_H || defined (HAVE_WINDOWS_H) 107 117 int watch = 1; 108 118 unsigned int ip; … … 126 136 /* XXX: the following functions are local */ 127 137 128 #if defined HAVE_SYS_SOCKET_H 138 #if defined HAVE_SYS_SOCKET_H || defined HAVE_WINSOCK2_H 129 139 static unsigned int *create_host_list(char const *list, 130 140 unsigned int *static_list) … … 167 177 } 168 178 169 ret = inet_ aton(buf, &addr);179 ret = inet_pton(AF_INET, buf, &addr); 170 180 if (ret) 171 181 iplist[i++] = addr.s_addr; -
zzuf/trunk/src/zzuf.c
r4833 r4834 792 792 static void clean_children(struct opts *opts) 793 793 { 794 #if defined HAVE_KILL 794 #if defined HAVE_KILL || defined HAVE_WINDOWS_H 795 795 int64_t now = _zz_time(); 796 796 #endif 797 797 int i, j; 798 798 799 #if defined HAVE_KILL 799 #if defined HAVE_KILL || defined HAVE_WINDOWS_H 800 800 /* Terminate children if necessary */ 801 801 for(i = 0; i < opts->maxchild; i++) … … 810 810 fprintf(stderr, "data output exceeded, sending SIGTERM\n"); 811 811 } 812 #if defined HAVE_KILL 812 813 kill(opts->child[i].pid, SIGTERM); 814 #else 815 /* We must invalidate fd */ 816 memset(opts->child[i].fd, -1, sizeof(opts->child[i].fd)); 817 TerminateProcess(opts->child[i].process_handle, 0x0); 818 #endif 813 819 opts->child[i].date = now; 814 820 opts->child[i].status = STATUS_SIGTERM; … … 824 830 fprintf(stderr, "running time exceeded, sending SIGTERM\n"); 825 831 } 832 #if defined HAVE_KILL 826 833 kill(opts->child[i].pid, SIGTERM); 834 #else 835 /* We must invalidate fd */ 836 memset(opts->child[i].fd, -1, sizeof(opts->child[i].fd)); 837 TerminateProcess(opts->child[i].process_handle, 0x0); 838 #endif 827 839 opts->child[i].date = now; 828 840 opts->child[i].status = STATUS_SIGTERM; … … 841 853 fprintf(stderr, "not responding, sending SIGKILL\n"); 842 854 } 855 #if defined HAVE_KILL 843 856 kill(opts->child[i].pid, SIGKILL); 857 #else 858 TerminateProcess(opts->child[i].process_handle, 0x0); 859 #endif 844 860 opts->child[i].status = STATUS_SIGKILL; 845 861 }
Note: See TracChangeset
for help on using the changeset viewer.