mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
libxl: fix libxl_string_list_length and its only caller
The wrong amount of indirections were being taken in
libxl_string_list_length, and its only caller was miscounting the amount
of initial non-list arguments, seemingly since the initial commit
(599c784).
This has been seen and reported in the wild (##xen):
< Trixboxer> Hi, any idea why would I get
< Trixboxer> xl: libxl_bootloader.c:42: bootloader_arg: Assertion `bl->nargs < bl->argsspace' failed.
< Trixboxer> 4.2.2-23.el6
Coverity-ID: 1054954
Signed-off-by: Matthew Daley <mattjd@gmail.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
1 parent
3b8782d95d
commit
b0be2b126e
2 files changed
+2
-2
No files matched your search
+1
-1
@@ -202,7 +202,7 @@ int libxl_string_list_length(const libxl_string_list *psl)
|
||||
{
|
||||
if (!psl) return 0;
|
||||
int i = 0;
|
||||
while (*psl++) i++;
|
||||
while ((*psl)[i]) i++;
|
||||
return i;
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ static void make_bootloader_args(libxl__gc *gc, libxl__bootloader_state *bl,
|
||||
{
|
||||
const libxl_domain_build_info *info = bl->info;
|
||||
|
||||
bl->argsspace = 7 + libxl_string_list_length(&info->u.pv.bootloader_args);
|
||||
bl->argsspace = 9 + libxl_string_list_length(&info->u.pv.bootloader_args);
|
||||
|
||||
GCNEW_ARRAY(bl->args, bl->argsspace);
|
||||
|
||||
|
||||