X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Fiface-code-inject.c;h=34c3e6ae292f190e55f9a1885dc648d5692876cb;hb=d22c11cec4e8c3390bfe6bf16ed07f5d073f0d4a;hp=b36edd19f4156401e9d8bcbb1882dfe32445dd66;hpb=07aa8f3c18a33af0961e7546980a63ab5f6fba4f;p=palacios.git diff --git a/linux_module/iface-code-inject.c b/linux_module/iface-code-inject.c index b36edd1..34c3e6a 100644 --- a/linux_module/iface-code-inject.c +++ b/linux_module/iface-code-inject.c @@ -7,7 +7,6 @@ #include #include -#include #include @@ -56,7 +55,7 @@ static int vm_tophalf_inject (struct v3_guest * guest, unsigned int cmd, unsigne struct top_half_data * top; top = palacios_alloc(sizeof(struct top_half_data)); - if (IS_ERR(top)) { + if (!top) { ERROR("Palacios Error: could not allocate space for top half data\n"); return -EFAULT; } @@ -75,14 +74,15 @@ static int vm_tophalf_inject (struct v3_guest * guest, unsigned int cmd, unsigne /* we have a binary name */ if (top_arg.is_exec_hooked) { - strcpy(top->bin_file, top_arg.bin_file); + strncpy(top->bin_file, top_arg.bin_file,256); + top->bin_file[255] = 0; top->is_exec_hooked = 1; DEBUG("top->bin_file is %s\n", top->bin_file); } DEBUG("Palacios: Allocating %lu B of kernel memory for ELF binary data...\n", top->elf_size); top->elf_data = palacios_alloc(top->elf_size); - if (IS_ERR(top->elf_data)) { + if (!(top->elf_data)) { ERROR("Palacios Error: could not allocate space for binary image\n"); palacios_free(top); return -EFAULT; @@ -136,6 +136,7 @@ static int guest_init_code_inject (struct v3_guest * guest, void ** vm_data) { static int guest_deinit_code_inject (struct v3_guest * guest, void * vm_data) { free_inject_data(); + remove_guest_ctrl(guest, V3_VM_TOPHALF_INJECT); return 0; }