fuzzRSN.c 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609
  1. /*
  2. Fuzzes rsn Information element
  3. */
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <stdint.h>
  7. #include <string.h>
  8. #include "../frameDefinitions.h"
  9. //Indecates whether the rsnFuzzer is running
  10. int rsnRunningState = 0;
  11. //Number of fuzzing states
  12. const int rsnStates = 10;
  13. //Steps of fuzzers for each fuzzing state
  14. const int rsnSteps[] = {1, 4, 8, 8, 8, 8, 32, 16, 16, 6};
  15. //Current state and step of the rsnFuzzer
  16. int fuzzState;
  17. int fuzzStep;
  18. void rsnPrintCurrentState()
  19. {
  20. switch (fuzzState)
  21. {
  22. case 0:
  23. {
  24. printf("\e[33mFuzzing rsn IE\e[39m\n");
  25. printf("Trying 255*0xFF data\n");
  26. break;
  27. }
  28. case 1:
  29. {
  30. printf("All 0xff or 0x00 except version field\n");
  31. break;
  32. }
  33. case 2:
  34. {
  35. printf("Fuzzing version field\n");
  36. break;
  37. }
  38. case 3:
  39. {
  40. printf("Fuzzing Pairwise Cipher Suite Count field\n");
  41. break;
  42. }
  43. case 4:
  44. {
  45. printf("Fuzzing AKM Suite Count field\n");
  46. break;
  47. }
  48. case 5:
  49. {
  50. printf("Fuzzing PMKID Count field\n");
  51. break;
  52. }
  53. case 6:
  54. {
  55. printf("Fuzzing small lengths\n");
  56. break;
  57. }
  58. case 7:
  59. {
  60. printf("Fuzzing Cipher suite type\n");
  61. break;
  62. }
  63. case 8:
  64. {
  65. printf("Fuzzing Cipher suite selector\n");
  66. break;
  67. }
  68. case 9:
  69. {
  70. printf("Fuzzing Cipher suite large lengths\n");
  71. break;
  72. }
  73. case 10:
  74. {
  75. printf("\e[33mDone with fuzzing rsn\e[39m\n");
  76. break;
  77. }
  78. }
  79. }
  80. //Updates rsnFuzzer
  81. //Status 0 indicates start
  82. //Status 1 indicates increaseStep
  83. //Status 2 indicates stop
  84. //Returns -1 if done with fuzzing
  85. int rsnFuzzUpdate(int status)
  86. {
  87. switch (status)
  88. {
  89. case 0: //start fuzzer
  90. {
  91. rsnRunningState = 1;
  92. fuzzState = 0;
  93. fuzzStep = 0;
  94. rsnPrintCurrentState();
  95. break;
  96. }
  97. case 1: //update fuzzer
  98. {
  99. if (rsnRunningState == 1) //sanity check
  100. {
  101. //increase steps until all steps are done
  102. if (fuzzStep < rsnSteps[fuzzState]-1)
  103. fuzzStep = fuzzStep + 1;
  104. //then increase state and notify
  105. else
  106. {
  107. fuzzStep = 0;
  108. fuzzState = fuzzState + 1;
  109. rsnPrintCurrentState();
  110. }
  111. //when all states are done, stop
  112. if (fuzzState == rsnStates)
  113. {
  114. rsnRunningState = 0;
  115. return -1;
  116. }
  117. }
  118. break;
  119. }
  120. case 2: //stop fuzzer
  121. {
  122. rsnRunningState = 0;
  123. break;
  124. }
  125. }
  126. return 0;
  127. }
  128. //Returns an rsn information element
  129. infoElem rsnFuzz()
  130. {
  131. infoElem rsn;
  132. //What to return when not fuzzed
  133. if (rsnRunningState == 0)
  134. {
  135. rsn.id = 0;
  136. rsn.len = 1;
  137. rsn.len_data = -1;
  138. rsn.data = "\xab";
  139. }
  140. else
  141. {
  142. switch (fuzzState) //update this
  143. {
  144. case 0: //255*0xff
  145. {
  146. rsn.id = 48;
  147. rsn.len = 255;
  148. rsn.len_data = 255;
  149. //create data of 255 times 0xff
  150. u_char *data = malloc(255);
  151. memset(data, 0xff, 255);
  152. rsn.data = data;
  153. break;
  154. }
  155. case 1:
  156. {
  157. if (fuzzStep < 2)
  158. {
  159. rsn.id = 48;
  160. rsn.len = 255;
  161. rsn.len_data = 255;
  162. //create data of 255 times 0xff
  163. u_char *data = malloc(255);
  164. memset(data, 0xff, 255);
  165. data[0] = 0x01;
  166. data[1] = 0x00;
  167. rsn.data = data;
  168. }
  169. else
  170. {
  171. rsn.id = 48;
  172. rsn.len = 255;
  173. rsn.len_data = 255;
  174. //create data of 255 times 0xff
  175. u_char *data = malloc(255);
  176. memset(data, 0x00, 255);
  177. data[0] = 0x01;
  178. data[1] = 0x00;
  179. rsn.data = data;
  180. }
  181. break;
  182. }
  183. case 2:
  184. {
  185. if (fuzzStep < 4)
  186. {
  187. rsn.id = 48;
  188. rsn.len = 24;
  189. rsn.len_data = 24;
  190. u_char *data = malloc(24);
  191. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x02\x00\x00";
  192. memcpy(data, valid, 24);
  193. data[0] = fuzzStep;
  194. data[1] = 0x00;
  195. rsn.data = data;
  196. }
  197. else
  198. {
  199. rsn.id = 48;
  200. rsn.len = 24;
  201. rsn.len_data = 24;
  202. u_char *data = malloc(24);
  203. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x02\x00\x00";
  204. memcpy(data, valid, 24);
  205. data[0] = 0xFF;
  206. data[1] = 255 - fuzzStep;
  207. rsn.data = data;
  208. }
  209. break;
  210. }
  211. case 3:
  212. {
  213. if (fuzzStep < 4)
  214. {
  215. rsn.id = 48;
  216. rsn.len = 24;
  217. rsn.len_data = 24;
  218. u_char *data = malloc(24);
  219. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x02\x00\x00";
  220. memcpy(data, valid, 24);
  221. data[6] = fuzzStep;
  222. data[7] = 0x00;
  223. rsn.data = data;
  224. }
  225. else
  226. {
  227. rsn.id = 48;
  228. rsn.len = 24;
  229. rsn.len_data = 24;
  230. u_char *data = malloc(24);
  231. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x02\x00\x00";
  232. memcpy(data, valid, 24);
  233. data[6] = 0xFF;
  234. data[7] = 255 - fuzzStep;
  235. rsn.data = data;
  236. }
  237. break;
  238. }
  239. case 4:
  240. {
  241. if (fuzzStep < 4)
  242. {
  243. rsn.id = 48;
  244. rsn.len = 24;
  245. rsn.len_data = 24;
  246. u_char *data = malloc(24);
  247. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x02\x00\x00";
  248. memcpy(data, valid, 24);
  249. data[16] = fuzzStep;
  250. data[17] = 0x00;
  251. rsn.data = data;
  252. }
  253. else
  254. {
  255. rsn.id = 48;
  256. rsn.len = 24;
  257. rsn.len_data = 24;
  258. u_char *data = malloc(24);
  259. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x02\x00\x00";
  260. memcpy(data, valid, 24);
  261. data[16] = 0xFF;
  262. data[17] = 255 - fuzzStep;
  263. rsn.data = data;
  264. }
  265. break;
  266. }
  267. case 5:
  268. {
  269. if (fuzzStep < 4)
  270. {
  271. rsn.id = 48;
  272. rsn.len = 26;
  273. rsn.len_data = 26;
  274. u_char *data = malloc(26);
  275. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x02\x00\x00\x00\x00";
  276. memcpy(data, valid, 26);
  277. data[24] = fuzzStep;
  278. data[25] = 0x00;
  279. rsn.data = data;
  280. }
  281. else
  282. {
  283. rsn.id = 48;
  284. rsn.len = 26;
  285. rsn.len_data = 26;
  286. u_char *data = malloc(26);
  287. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x02\x00\x00\x00\x00";
  288. memcpy(data, valid, 26);
  289. data[24] = 0xFF;
  290. data[25] = 255 - fuzzStep;
  291. rsn.data = data;
  292. }
  293. break;
  294. }
  295. case 6:
  296. {
  297. int dataSize = fuzzStep;
  298. rsn.id = 48;
  299. rsn.len = dataSize;
  300. rsn.len_data = dataSize;
  301. //create data of datasize times 0x00
  302. u_char *data = malloc(dataSize);
  303. memset(data, 0xFF, dataSize);
  304. if (dataSize >= 2)
  305. {
  306. data[0] = 0x01;
  307. data[1] = 0x00;
  308. }
  309. rsn.data = data;
  310. break;
  311. }
  312. case 7:
  313. {
  314. if (fuzzStep < 8)
  315. {
  316. rsn.id = 48;
  317. rsn.len = 42;
  318. rsn.len_data = 42;
  319. u_char *data = malloc(42);
  320. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x01\x00"
  321. "\x00\x0f\xac\xff\x01\x00"
  322. "\x00\x0f\xac\xff\x00\x00\x01\x00"
  323. "\xff\xff\xff\xff\xff\xff\xff\xff"
  324. "\xff\xff\xff\xff\xff\xff\xff\xff"
  325. "\x00\x0f\xac\xff";
  326. memcpy(data, valid, 42);
  327. data[11] = fuzzStep;
  328. data[17] = fuzzStep;
  329. int i;
  330. for (i=0; i<16; i++)
  331. {
  332. data[22+i] = fuzzStep;
  333. }
  334. data[41] = fuzzStep;
  335. rsn.data = data;
  336. }
  337. else
  338. {
  339. rsn.id = 48;
  340. rsn.len = 42;
  341. rsn.len_data = 42;
  342. u_char *data = malloc(42);
  343. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x01\x00"
  344. "\x00\x0f\xac\xff\x01\x00"
  345. "\x00\x0f\xac\xff\x00\x00\x01\x00"
  346. "\xff\xff\xff\xff\xff\xff\xff\xff"
  347. "\xff\xff\xff\xff\xff\xff\xff\xff"
  348. "\x00\x0f\xac\xff";
  349. memcpy(data, valid, 42);
  350. data[11] = 255 - fuzzStep + 8;
  351. data[17] = 255 - fuzzStep + 8;
  352. int i;
  353. for (i=0; i<16; i++)
  354. {
  355. data[22+i] = 255 - fuzzStep + 8;
  356. }
  357. data[41] = 255 - fuzzStep + 8;
  358. rsn.data = data;
  359. }
  360. break;
  361. }
  362. case 8:
  363. {
  364. if (fuzzStep < 8)
  365. {
  366. rsn.id = 48;
  367. rsn.len = 42;
  368. rsn.len_data = 42;
  369. u_char *data = malloc(42);
  370. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x01\x00"
  371. "\xff\xff\xff\xff\x01\x00"
  372. "\xff\xff\xff\xff\x00\x00\x01\x00"
  373. "\xff\xff\xff\xff\xff\xff\xff\xff"
  374. "\xff\xff\xff\xff\xff\xff\xff\xff"
  375. "\xff\xff\xff\xff";
  376. memcpy(data, valid, 42);
  377. data[8] = fuzzStep;
  378. data[9] = fuzzStep;
  379. data[10] = fuzzStep;
  380. data[11] = fuzzStep;
  381. data[14] = fuzzStep;
  382. data[15] = fuzzStep;
  383. data[16] = fuzzStep;
  384. data[17] = fuzzStep;
  385. int i;
  386. for (i=0; i<20; i++)
  387. {
  388. data[22+i] = fuzzStep;
  389. }
  390. rsn.data = data;
  391. }
  392. else
  393. {
  394. rsn.id = 48;
  395. rsn.len = 42;
  396. rsn.len_data = 42;
  397. u_char *data = malloc(42);
  398. u_char *valid = "\x01\x00\x00\x0f\xac\x02\x01\x00"
  399. "\xff\xff\xff\xff\x01\x00"
  400. "\xff\xff\xff\xff\x00\x00\x01\x00"
  401. "\xff\xff\xff\xff\xff\xff\xff\xff"
  402. "\xff\xff\xff\xff\xff\xff\xff\xff"
  403. "\xff\xff\xff\xff";
  404. memcpy(data, valid, 42);
  405. data[8] = 255 - fuzzStep + 8;
  406. data[9] = 255 - fuzzStep + 8;
  407. data[10] = 255 - fuzzStep + 8;
  408. data[11] = 255 - fuzzStep + 8;
  409. data[14] = 255 - fuzzStep + 8;
  410. data[15] = 255 - fuzzStep + 8;
  411. data[16] = 255 - fuzzStep + 8;
  412. data[17] = 255 - fuzzStep + 8;
  413. int i;
  414. for (i=0; i<20; i++)
  415. {
  416. data[22+i] = 255 - fuzzStep + 8;
  417. }
  418. rsn.data = data;
  419. }
  420. break;
  421. }
  422. case 9:
  423. {
  424. if (fuzzStep == 0)
  425. {
  426. rsn.id = 48;
  427. rsn.len = 252;
  428. rsn.len_data = 252;
  429. u_char *data = malloc(252);
  430. u_char *valid = "\x01\x00\x00\x0f\xac\x02"
  431. "\x3D\x00"
  432. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  433. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  434. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  435. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  436. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  437. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  438. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  439. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  440. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  441. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  442. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  443. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  444. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  445. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  446. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  447. "\x00\x0f\xac\x04";
  448. memcpy(data, valid, 252);
  449. rsn.data = data;
  450. }
  451. if (fuzzStep == 1)
  452. {
  453. rsn.id = 48;
  454. rsn.len = 252;
  455. rsn.len_data = 252;
  456. u_char *data = malloc(252);
  457. u_char *valid = "\x01\x00\x00\x0f\xac\x02"
  458. "\x3D\x00"
  459. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  460. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  461. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  462. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  463. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  464. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  465. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  466. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  467. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  468. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  469. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  470. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  471. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  472. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  473. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  474. "\xff\xff\xff\xff";
  475. memcpy(data, valid, 252);
  476. rsn.data = data;
  477. }
  478. if (fuzzStep == 2)
  479. {
  480. rsn.id = 48;
  481. rsn.len = 254;
  482. rsn.len_data = 254;
  483. u_char *data = malloc(254);
  484. u_char *valid = "\x01\x00\x00\x0f\xac\x02"
  485. "\x00\x00"
  486. "\x3D\x00"
  487. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  488. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  489. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  490. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  491. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  492. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  493. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  494. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  495. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  496. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  497. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  498. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  499. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  500. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  501. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  502. "\x00\x0f\xac\x04";
  503. memcpy(data, valid, 252);
  504. rsn.data = data;
  505. }
  506. if (fuzzStep == 3)
  507. {
  508. rsn.id = 48;
  509. rsn.len = 254;
  510. rsn.len_data = 254;
  511. u_char *data = malloc(254);
  512. u_char *valid = "\x01\x00\x00\x0f\xac\x02"
  513. "\x00\x00"
  514. "\x3D\x00"
  515. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  516. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  517. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  518. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  519. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  520. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  521. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  522. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  523. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  524. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  525. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  526. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  527. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  528. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  529. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  530. "\xff\xff\xff\xff";
  531. memcpy(data, valid, 252);
  532. rsn.data = data;
  533. }
  534. if (fuzzStep == 4)
  535. {
  536. rsn.id = 48;
  537. rsn.len = 254;
  538. rsn.len_data = 254;
  539. u_char *data = malloc(254);
  540. u_char *valid = "\x01\x00\x00\x0f\xac\x02"
  541. "\x00\x00"
  542. "\x00\x00"
  543. "\x00\x00"
  544. "\x0f\x00"
  545. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  546. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  547. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  548. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  549. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  550. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  551. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  552. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  553. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  554. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  555. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  556. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  557. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  558. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  559. "\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04\x00\x0f\xac\x04"
  560. ;
  561. memcpy(data, valid, 252);
  562. rsn.data = data;
  563. }
  564. if (fuzzStep == 5)
  565. {
  566. rsn.id = 48;
  567. rsn.len = 254;
  568. rsn.len_data = 254;
  569. u_char *data = malloc(254);
  570. u_char *valid = "\x01\x00\x00\x0f\xac\x02"
  571. "\x00\x00"
  572. "\x00\x00"
  573. "\x00\x00"
  574. "\x0f\x00"
  575. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  576. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  577. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  578. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  579. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  580. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  581. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  582. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  583. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  584. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  585. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  586. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  587. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  588. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  589. "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
  590. ;
  591. memcpy(data, valid, 252);
  592. rsn.data = data;
  593. }
  594. break;
  595. }
  596. }
  597. }
  598. return rsn;
  599. }