Rusty, 

I just realized that our ss1 member in lg_cpu is u8. 
I guess this is not an issue with Linux because it always stores __KERNEL_DS 
(index for the 13th GDT entry)
so 8 bits are enough. But I'm asking myself what happens if the kernel data 
segment descriptor 
gets moved to some higher GDT entry or we get to support other guests some day? 
 

Just in case you consider its worth to apply (it doesn't fix any present 
issue), here is the patch:

regards


Segment selectors are 16-bit long. Fix lg_cpu.ss1 definition.

Signed-off-by: Matias Zabaljauregui <zabaljauregui at gmail.com>

---
 drivers/lguest/lg.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/lguest/lg.h b/drivers/lguest/lg.h
index af92a17..edd2ed5 100644
--- a/drivers/lguest/lg.h
+++ b/drivers/lguest/lg.h
@@ -49,7 +49,7 @@ struct lg_cpu {
        u32 cr2;
        int ts;
        u32 esp1;
-       u8 ss1;
+       u16 ss1;
 
        /* Bitmap of what has changed: see CHANGED_* above. */
        int changed;
-- 
1.5.6.3



_______________________________________________
Lguest mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/lguest

Reply via email to