mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
tools/xenstore: avoid unterminated string in xs_directory_part()
Commit d4016288ab ("xenstore: support XS_DIRECTORY_PART in
libxenstore") introduced a theoretical bug: the generation count of
the read node is transferred via strncpy without forcing a NUL byte
at the end. Correct this.
Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
This commit is contained in:
1 parent
cb6ae256e8
commit
e25ddb6dae
1 file changed
+2
-2
+2
-2
@@ -589,7 +589,7 @@ static char **xs_directory_part(struct xs_handle *h, xs_transaction_t t,
|
||||
struct iovec iovec[2];
|
||||
char *result = NULL, *strings = NULL;
|
||||
|
||||
gen[0] = 0;
|
||||
memset(gen, 0, sizeof(gen));
|
||||
iovec[0].iov_base = (void *)path;
|
||||
iovec[0].iov_len = strlen(path) + 1;
|
||||
|
||||
@@ -616,7 +616,7 @@ static char **xs_directory_part(struct xs_handle *h, xs_transaction_t t,
|
||||
continue;
|
||||
}
|
||||
} else
|
||||
strncpy(gen, result, sizeof(gen));
|
||||
strncpy(gen, result, sizeof(gen) - 1);
|
||||
|
||||
result_len -= strlen(result) + 1;
|
||||
strings = realloc(strings, off + result_len);
|
||||
|
||||