Hi Dominique, On 2018/8/1 16:11, Dominique Martinet wrote: > piaojun wrote on Wed, Aug 01, 2018: >> chan->tag has no terminal char at last which will result in printing messy >> code when debugging code. So we should add '\0' for tag. > > 9p is full of non null-terminated string so I'm not sure how I feel > about it, is there anything wrong with how this is used or was this just > when you tried to printf it?
There is nothing wrong at the places using tag, as they calculated the tag_len carefully. Adding '\0' for it will make the code more robust. And I'm glad to hear others' opinions. Thanks, Jun > > If it's just for debugging I'd suggest using the printf format "%.*s" > with "chan->tag_len, chan->tag" arguments, > > > That said it's not like this is costly, so I'll take it if someone else > thinks this is helpful > >> >> Signed-off-by: Jun Piao <piao...@huawei.com> >> --- >> net/9p/trans_virtio.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c >> index d422bfc..49d71d6 100644 >> --- a/net/9p/trans_virtio.c >> +++ b/net/9p/trans_virtio.c >> @@ -585,7 +585,7 @@ static int p9_virtio_probe(struct virtio_device *vdev) >> err = -EINVAL; >> goto out_free_vq; >> } >> - tag = kmalloc(tag_len, GFP_KERNEL); >> + tag = kzalloc(tag_len + 1, GFP_KERNEL); >> if (!tag) { >> err = -ENOMEM; >> goto out_free_vq; >> --