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_DEVICE
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>