* [PATCH] tools: libxl: NULL terminate partially constructed hex string
@ 2016-02-16 11:18 Ian Campbell
2016-02-16 12:34 ` Wei Liu
0 siblings, 1 reply; 3+ messages in thread
From: Ian Campbell @ 2016-02-16 11:18 UTC (permalink / raw)
To: ian.jackson, wei.liu2, xen-devel; +Cc: Ian Campbell
Coverity (correctly) complains that the strncpy(p, "0x", 2) will not
null terminate p.
Although we can see that in the rest of the function p will
definitely be NULL terminated by the time it is complete there is no
harm in passing 3 to the strncpy and allowing it to NULL terminate to
placate Coverity. We know this is safe because the allocation to hold
the string includes a "+3" for the 0x and the terminating NULL.
Compile tested only.
CID: 1198708
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
I flip-flopped on just telling Coverity this was a false +ve, but
mainly landed on this course of action because the issue was marked as
"fix required" by Ian J in the coverity interface (it was also marked
"insignificant" FWIW).
---
tools/libxl/libxl_utils.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c
index e42422a..672d3f8 100644
--- a/tools/libxl/libxl_utils.c
+++ b/tools/libxl/libxl_utils.c
@@ -780,7 +780,7 @@ char *libxl_bitmap_to_hex_string(libxl_ctx *ctx, const libxl_bitmap *bitmap)
int i = bitmap->size;
char *p = libxl__zalloc(NOGC, bitmap->size * 2 + 3);
char *q = p;
- strncpy(p, "0x", 2);
+ strncpy(p, "0x", 3);
p += 2;
while(--i >= 0) {
sprintf(p, "%02x", bitmap->map[i]);
--
2.1.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] tools: libxl: NULL terminate partially constructed hex string
2016-02-16 11:18 [PATCH] tools: libxl: NULL terminate partially constructed hex string Ian Campbell
@ 2016-02-16 12:34 ` Wei Liu
2016-02-16 17:39 ` Ian Jackson
0 siblings, 1 reply; 3+ messages in thread
From: Wei Liu @ 2016-02-16 12:34 UTC (permalink / raw)
To: Ian Campbell; +Cc: wei.liu2, ian.jackson, xen-devel
On Tue, Feb 16, 2016 at 11:18:20AM +0000, Ian Campbell wrote:
> Coverity (correctly) complains that the strncpy(p, "0x", 2) will not
> null terminate p.
>
> Although we can see that in the rest of the function p will
> definitely be NULL terminated by the time it is complete there is no
> harm in passing 3 to the strncpy and allowing it to NULL terminate to
> placate Coverity. We know this is safe because the allocation to hold
> the string includes a "+3" for the 0x and the terminating NULL.
>
> Compile tested only.
>
> CID: 1198708
>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
> ---
> I flip-flopped on just telling Coverity this was a false +ve, but
> mainly landed on this course of action because the issue was marked as
> "fix required" by Ian J in the coverity interface (it was also marked
> "insignificant" FWIW).
> ---
> tools/libxl/libxl_utils.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c
> index e42422a..672d3f8 100644
> --- a/tools/libxl/libxl_utils.c
> +++ b/tools/libxl/libxl_utils.c
> @@ -780,7 +780,7 @@ char *libxl_bitmap_to_hex_string(libxl_ctx *ctx, const libxl_bitmap *bitmap)
> int i = bitmap->size;
> char *p = libxl__zalloc(NOGC, bitmap->size * 2 + 3);
> char *q = p;
> - strncpy(p, "0x", 2);
> + strncpy(p, "0x", 3);
> p += 2;
> while(--i >= 0) {
> sprintf(p, "%02x", bitmap->map[i]);
> --
> 2.1.4
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] tools: libxl: NULL terminate partially constructed hex string
2016-02-16 12:34 ` Wei Liu
@ 2016-02-16 17:39 ` Ian Jackson
0 siblings, 0 replies; 3+ messages in thread
From: Ian Jackson @ 2016-02-16 17:39 UTC (permalink / raw)
To: Wei Liu; +Cc: Ian Campbell, xen-devel
Wei Liu writes ("Re: [PATCH] tools: libxl: NULL terminate partially constructed hex string"):
> On Tue, Feb 16, 2016 at 11:18:20AM +0000, Ian Campbell wrote:
> > Coverity (correctly) complains that the strncpy(p, "0x", 2) will not
> > null terminate p.
> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
>
> Acked-by: Wei Liu <wei.liu2@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-02-16 17:39 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-16 11:18 [PATCH] tools: libxl: NULL terminate partially constructed hex string Ian Campbell
2016-02-16 12:34 ` Wei Liu
2016-02-16 17:39 ` Ian Jackson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.