[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] unlzma: avoid UB shift



commit 5b1185cf2602a3819629c8313d3303dc2509c830
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Mon Mar 30 13:41:07 2026 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Mon Mar 30 13:41:07 2026 +0200

    unlzma: avoid UB shift
    
    Shifting signed quantities has restrictions. Since the wrapping macro of
    read_int() type-casts the result anyway, switch function return type as
    well as the local variable to the corresponding unsigned type.
    
    Reported-by: Kamil Frankowicz <kamil.frankowicz@xxxxxxx>
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
 xen/common/unlzma.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/common/unlzma.c b/xen/common/unlzma.c
index 6cd99023ad..56359420aa 100644
--- a/xen/common/unlzma.c
+++ b/xen/common/unlzma.c
@@ -30,10 +30,10 @@
 
 #include "decompress.h"
 
-static long long __init read_int(unsigned char *ptr, int size)
+static unsigned long long __init read_int(unsigned char *ptr, int size)
 {
        int i;
-       long long ret = 0;
+       unsigned long long ret = 0;
 
        for (i = 0; i < size; i++)
                ret = (ret << 8) | ptr[size-i-1];
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.