[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] build-id: fix minor quirks
commit 0159ded211fa4fbb9934eb222148442921789816 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Mon Aug 15 10:41:02 2016 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Mon Aug 15 10:41:02 2016 +0200 build-id: fix minor quirks The initial size check in xen_build_id_check() came too late (after the first access to the structure), but was mostly redundant with checks done in all callers; convert it to a properly placed ASSERT(). The "mostly" part being addressed too: xen_build_init() was off by one. And then there was a stray semicolon. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> --- xen/common/version.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/xen/common/version.c b/xen/common/version.c index 0f96849..b2afe96 100644 --- a/xen/common/version.c +++ b/xen/common/version.c @@ -1,6 +1,7 @@ #include <xen/compile.h> #include <xen/init.h> #include <xen/errno.h> +#include <xen/lib.h> #include <xen/string.h> #include <xen/types.h> #include <xen/elf.h> @@ -90,12 +91,11 @@ int xen_build_id_check(const Elf_Note *n, unsigned int n_sz, const void **p, unsigned int *len) { /* Check if we really have a build-id. */ + ASSERT(n_sz > sizeof(*n)); + if ( NT_GNU_BUILD_ID != n->type ) return -ENODATA; - if ( n_sz <= sizeof(*n) ) - return -EINVAL; - if ( n->namesz + n->descsz < n->namesz ) return -EINVAL; @@ -127,8 +127,8 @@ static int __init xen_build_init(void) return -ENODATA; /* Check for full Note header. */ - if ( &n[1] > __note_gnu_build_id_end ) - return -ENODATA;; + if ( &n[1] >= __note_gnu_build_id_end ) + return -ENODATA; sz = (void *)__note_gnu_build_id_end - (void *)n; -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |