Claudio Jeker(cje...@diehard.n-r-g.com) on 2022.01.04 14:12:02 +0100: > On Tue, Jan 04, 2022 at 10:58:41AM +0100, Claudio Jeker wrote: > > This are obvious and easy to fix unused but set variables. > > There are more in vioscsi.c but those are actually used if compiled with > > DEBUG set. > > The changes in loadfile_elf.c, vioqcow2.c and vmd.c are trivial and can be > committed one by one.
ok on those > The change in vmm.c actually uncovered a possible > issue. If vm_register() fails the vm pointer will most probably be NULL > and so the next line will access a NULL pointer. > > I think this diff is better. It cleans up also a totally unused > IMSG_VMDOP_RECEIVE_VM_RESPONSE imsg type. looks ok too, i think. > It is hard to fail the vm_register() call so it is not trivial to really > test the error case but I did test vmctl receive and that still works. > -- > :wq Claudio > > Index: control.c > =================================================================== > RCS file: /cvs/src/usr.sbin/vmd/control.c,v > retrieving revision 1.38 > diff -u -p -r1.38 control.c > --- control.c 29 Nov 2021 05:17:35 -0000 1.38 > +++ control.c 4 Jan 2022 12:05:35 -0000 > @@ -94,7 +94,6 @@ control_dispatch_vmd(int fd, struct priv > case IMSG_VMDOP_START_VM_RESPONSE: > case IMSG_VMDOP_PAUSE_VM_RESPONSE: > case IMSG_VMDOP_SEND_VM_RESPONSE: > - case IMSG_VMDOP_RECEIVE_VM_RESPONSE: > case IMSG_VMDOP_UNPAUSE_VM_RESPONSE: > case IMSG_VMDOP_GET_INFO_VM_DATA: > case IMSG_VMDOP_GET_INFO_VM_END_DATA: > Index: vmd.h > =================================================================== > RCS file: /cvs/src/usr.sbin/vmd/vmd.h,v > retrieving revision 1.107 > diff -u -p -r1.107 vmd.h > --- vmd.h 29 Nov 2021 05:17:35 -0000 1.107 > +++ vmd.h 4 Jan 2022 12:05:24 -0000 > @@ -101,7 +101,6 @@ enum imsg_type { > IMSG_VMDOP_SEND_VM_REQUEST, > IMSG_VMDOP_SEND_VM_RESPONSE, > IMSG_VMDOP_RECEIVE_VM_REQUEST, > - IMSG_VMDOP_RECEIVE_VM_RESPONSE, > IMSG_VMDOP_RECEIVE_VM_END, > IMSG_VMDOP_WAIT_VM_REQUEST, > IMSG_VMDOP_TERMINATE_VM_REQUEST, > Index: vmm.c > =================================================================== > RCS file: /cvs/src/usr.sbin/vmd/vmm.c,v > retrieving revision 1.102 > diff -u -p -r1.102 vmm.c > --- vmm.c 29 Nov 2021 05:17:35 -0000 1.102 > +++ vmm.c 4 Jan 2022 12:05:04 -0000 > @@ -102,7 +102,7 @@ int > vmm_dispatch_parent(int fd, struct privsep_proc *p, struct imsg *imsg) > { > struct privsep *ps = p->p_ps; > - int res = 0, cmd = 0, verbose, ret; > + int res = 0, cmd = 0, verbose; > struct vmd_vm *vm = NULL; > struct vm_terminate_params vtp; > struct vmop_id vid; > @@ -278,8 +278,12 @@ vmm_dispatch_parent(int fd, struct privs > case IMSG_VMDOP_RECEIVE_VM_REQUEST: > IMSG_SIZE_CHECK(imsg, &vmc); > memcpy(&vmc, imsg->data, sizeof(vmc)); > - ret = vm_register(ps, &vmc, &vm, > - imsg->hdr.peerid, vmc.vmc_owner.uid); > + if (vm_register(ps, &vmc, &vm, > + imsg->hdr.peerid, vmc.vmc_owner.uid) != 0) { > + res = errno; > + cmd = IMSG_VMDOP_START_VM_RESPONSE; > + break; > + } > vm->vm_tty = imsg->fd; > vm->vm_state |= VM_STATE_RECEIVED; > vm->vm_state |= VM_STATE_PAUSED; > @@ -328,6 +332,7 @@ vmm_dispatch_parent(int fd, struct privs > } > if (id == 0) > id = imsg->hdr.peerid; > + /* FALLTHROUGH */ > case IMSG_VMDOP_PAUSE_VM_RESPONSE: > case IMSG_VMDOP_UNPAUSE_VM_RESPONSE: > case IMSG_VMDOP_TERMINATE_VM_RESPONSE: >