ssrg-vt / popcorn-kernel

Popcorn Linux kernel for distributed thread execution
Other
156 stars 22 forks source link

Check all invocations of pcn_kmsg_done for correct usage #66

Open bxatnarf opened 5 years ago

bxatnarf commented 5 years ago

pcn_kmsg_done(void *msg) assumes that its argument is a valid pointer to a (malloc'd) struct pcn_kmsg_hdr. This is not the case in all invocations, e.g., issue https://github.com/ssrg-vt/popcorn-kernel/issues/63. We need to hunt down and patch any remaining buggy invocations.

List of call sites to check:

  1. kernel/popcorn/remote_info.c:293: pcn_kmsg_done(res);
  2. kernel/popcorn/remote_info.c:332: pcn_kmsg_done(response);
  3. kernel/popcorn/page_server.c:819: pcn_kmsg_done(req);
  4. kernel/popcorn/page_server.c:914: pcn_kmsg_done(res);
  5. kernel/popcorn/page_server.c:1142: pcn_kmsg_done(rp);
  6. kernel/popcorn/page_server.c:1730: pcn_kmsg_done(rp);
  7. kernel/popcorn/vma_server.c:268: pcn_kmsg_done(res);
  8. kernel/popcorn/vma_server.c:294: pcn_kmsg_done(res);
  9. kernel/popcorn/vma_server.c:314: pcn_kmsg_done(res);
  10. kernel/popcorn/vma_server.c:338: pcn_kmsg_done(res);
  11. kernel/popcorn/vma_server.c:362: pcn_kmsg_done(res);
  12. kernel/popcorn/vma_server.c:405: pcn_kmsg_done(res);
  13. kernel/popcorn/vma_server.c:548: pcn_kmsg_done(req);
  14. kernel/popcorn/vma_server.c:605: pcn_kmsg_done(res);
  15. kernel/popcorn/vma_server.c:672: pcn_kmsg_done(req);
  16. kernel/popcorn/vma_server.c:830: pcn_kmsg_done((void *)vi->response);
  17. kernel/popcorn/bundle.c:94: pcn_kmsg_done(msg);
  18. kernel/popcorn/process_server.c:212: pcn_kmsg_done(res);
  19. kernel/popcorn/process_server.c:256: pcn_kmsg_done(req);
  20. kernel/popcorn/process_server.c:362: pcn_kmsg_done(req);
  21. kernel/popcorn/process_server.c:374: pcn_kmsg_done(req);
  22. kernel/popcorn/process_server.c:390: pcn_kmsg_done(req);
  23. kernel/popcorn/process_server.c:424: pcn_kmsg_done(req);
  24. kernel/popcorn/process_server.c:498: pcn_kmsg_done(req);
  25. kernel/popcorn/process_server.c:556: pcn_kmsg_done(req);
  26. kernel/popcorn/process_server.c:847: pcn_kmsg_done(req);
  27. kernel/popcorn/sched_server.c:90: pcn_kmsg_done(req);
  28. kernel/popcorn/sched_server.c:191: pcn_kmsg_done(res);
  29. kernel/popcorn/pcn_kmsg.c:70: pcn_kmsg_done(msg);
  30. msg_layer/dolphin/msg_dolphin.c:793: pcn_kmsg_done(pcn_msg);
  31. msg_layer/dolphin/msg_dolphin.c:816: pcn_kmsg_done(pcn_msg);
  32. msg_layer/dolphin/msg_dolphin.c:927: pcn_kmsg_done(pcn_msg);
  33. msg_layer/dolphin/msg_dolphin.c:936: pcn_kmsg_done(pcn_msg);
  34. msg_layer/msg_test.c:148: pcn_kmsg_done(inc_lmsg);
  35. msg_layer/msg_test.c:256: pcn_kmsg_done(act_buf);
  36. msg_layer/msg_test.c:408: pcn_kmsg_done(res);
  37. msg_layer/ib.c:1615: pcn_kmsg_done(req);
  38. msg_layer/ib.c:1623: pcn_kmsg_done(res);