[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-3.1-testing] libxc: Minor clean up of xc_core, and fix for -fstrict-overflow.
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1196960458 0 # Node ID 3471953685684da80883859adb85ab306768bc2f # Parent a4b96d2204fe65d7a58877b1405900e35715eca3 libxc: Minor clean up of xc_core, and fix for -fstrict-overflow. Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> xen-unstable changeset: 16412:7186e9611d55dc5ab6fd9c6a8bd6e5c674be8c10 xen-unstable date: Thu Nov 22 10:40:45 2007 +0000 --- tools/libxc/xc_core.c | 16 +++++++++++----- tools/libxc/xc_core_x86.c | 4 ++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff -r a4b96d2204fe -r 347195368568 tools/libxc/xc_core.c --- a/tools/libxc/xc_core.c Thu Dec 06 17:00:21 2007 +0000 +++ b/tools/libxc/xc_core.c Thu Dec 06 17:00:58 2007 +0000 @@ -119,16 +119,22 @@ xc_core_strtab_get(struct xc_core_strtab uint16_t ret = 0; uint16_t len = strlen(name) + 1; + if ( strtab->current > UINT16_MAX - len ) + { + PERROR("too long string table"); + errno = E2BIG; + return ret; + } + if ( strtab->current + len > strtab->max ) { char *tmp; - if ( strtab->max * 2 < strtab->max ) + if ( strtab->max > UINT16_MAX / 2 ) { PERROR("too long string table"); errno = ENOMEM; return ret; } - tmp = realloc(strtab->strings, strtab->max * 2); if ( tmp == NULL ) @@ -155,8 +161,8 @@ struct xc_core_section_headers { Elf64_Shdr *shdrs; }; -#define SHDR_INIT 16 -#define SHDR_INC 4U +#define SHDR_INIT ((uint16_t)16) +#define SHDR_INC ((uint16_t)4) static struct xc_core_section_headers* xc_core_shdr_init(void) @@ -192,7 +198,7 @@ xc_core_shdr_get(struct xc_core_section_ if ( sheaders->num == sheaders->num_max ) { Elf64_Shdr *shdrs; - if ( sheaders->num_max + SHDR_INC < sheaders->num_max ) + if ( sheaders->num_max > UINT16_MAX - SHDR_INC ) { errno = E2BIG; return NULL; diff -r a4b96d2204fe -r 347195368568 tools/libxc/xc_core_x86.c --- a/tools/libxc/xc_core_x86.c Thu Dec 06 17:00:21 2007 +0000 +++ b/tools/libxc/xc_core_x86.c Thu Dec 06 17:00:58 2007 +0000 @@ -86,7 +86,7 @@ xc_core_arch_map_p2m(int xc_handle, xc_d } live_p2m_frame_list = - xc_map_foreign_batch(xc_handle, dom, PROT_READ, + xc_map_foreign_pages(xc_handle, dom, PROT_READ, live_p2m_frame_list_list, P2M_FLL_ENTRIES); @@ -96,7 +96,7 @@ xc_core_arch_map_p2m(int xc_handle, xc_d goto out; } - *live_p2m = xc_map_foreign_batch(xc_handle, dom, PROT_READ, + *live_p2m = xc_map_foreign_pages(xc_handle, dom, PROT_READ, live_p2m_frame_list, P2M_FL_ENTRIES); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |