Jan Beulich
2012-Mar-09 15:31 UTC
[PATCH] tapdisk2: initialize ''name'' parameter of BLKTAP2_IOCTL_CREATE_DEVICE
This keeps the kernel driver from printing garbage. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/tools/blktap2/drivers/tapdisk-control.c +++ b/tools/blktap2/drivers/tapdisk-control.c @@ -462,6 +462,7 @@ tapdisk_control_open_image(struct tapdis params.capacity = image.size; params.sector_size = image.secsize; + strncpy(params.name, vbd->name, BLKTAP2_MAX_MESSAGE_LEN); err = ioctl(vbd->ring.fd, BLKTAP2_IOCTL_CREATE_DEVICE, ¶ms); if (err && errno != EEXIST) { _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Ian Jackson
2012-Mar-13 15:53 UTC
Re: [PATCH] tapdisk2: initialize ''name'' parameter of BLKTAP2_IOCTL_CREATE_DEVICE
Jan Beulich writes ("[Xen-devel] [PATCH] tapdisk2: initialize ''name'' parameter of BLKTAP2_IOCTL_CREATE_DEVICE"):> This keeps the kernel driver from printing garbage....> + strncpy(params.name, vbd->name, BLKTAP2_MAX_MESSAGE_LEN);I don''t think this is right. As the FM for strncpy puts it: | Warning: If there is no null byte among the first n bytes | of src, the string placed in dest will not be null-terminated. An easy fix would be to memset params to 0 first. Ian.
Jan Beulich
2012-Mar-14 07:32 UTC
Re: [PATCH] tapdisk2: initialize ''name'' parameter of BLKTAP2_IOCTL_CREATE_DEVICE
>>> On 13.03.12 at 16:53, Ian Jackson <Ian.Jackson@eu.citrix.com> wrote: > Jan Beulich writes ("[Xen-devel] [PATCH] tapdisk2: initialize ''name'' parameter > of BLKTAP2_IOCTL_CREATE_DEVICE"): >> This keeps the kernel driver from printing garbage. > ... >> + strncpy(params.name, vbd->name, BLKTAP2_MAX_MESSAGE_LEN); > > I don''t think this is right. As the FM for strncpy puts it: > > | Warning: If there is no null byte among the first n bytes > | of src, the string placed in dest will not be null-terminated.That''s actually expected here - the kernel code needs to be careful about no trailing NUL anyway.> An easy fix would be to memset params to 0 first.That would not help at all - if src is longer than available space, then there still wouldn''t be a NUL in the end. On would additionally have to subtract 1 from the size argument. But as said, all that is unnecessary. Jan
Ian Jackson
2012-Mar-14 10:12 UTC
Re: [PATCH] tapdisk2: initialize ''name'' parameter of BLKTAP2_IOCTL_CREATE_DEVICE
Jan Beulich writes ("Re: [Xen-devel] [PATCH] tapdisk2: initialize ''name'' parameter of BLKTAP2_IOCTL_CREATE_DEVICE"):> > | Warning: If there is no null byte among the first n bytes > > | of src, the string placed in dest will not be null-terminated. > > That''s actually expected here - the kernel code needs to be careful > about no trailing NUL anyway.Oh, OK.> > An easy fix would be to memset params to 0 first. > > That would not help at all - if src is longer than available space, then > there still wouldn''t be a NUL in the end. On would additionally have to > subtract 1 from the size argument. But as said, all that is unnecessary.Yes, I realised that suggestion of mine was confused. Ian.
Ian Jackson
2012-Mar-14 11:40 UTC
Re: [PATCH] tapdisk2: initialize ''name'' parameter of BLKTAP2_IOCTL_CREATE_DEVICE
Jan Beulich writes ("[Xen-devel] [PATCH] tapdisk2: initialize ''name'' parameter of BLKTAP2_IOCTL_CREATE_DEVICE"):> tapdisk2: initialize ''name'' parameter of BLKTAP2_IOCTL_CREATE_DEVICEAcked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>