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

[Xen-changelog] [xen master] oxenstored: fix error when shifting negative value



commit 92afa655e7b60a3c4d00fe1c7193e79fa4b901ad
Author:     Roger Pau Monne <roger.pau@xxxxxxxxxx>
AuthorDate: Tue Apr 26 12:07:51 2016 +0200
Commit:     Wei Liu <wei.liu2@xxxxxxxxxx>
CommitDate: Wed Apr 27 14:14:18 2016 +0100

    oxenstored: fix error when shifting negative value
    
    By explicitly casting it to unsigned.
    
    Reasoning on why this is needed, provided by Andrew Cooper:
    
    "Ocaml stores integers shifted left by one, and with the bottom bit set.
    
    Values with the bottom bit clear are pointers into the GC'd heap. Values
    with the bottom bit set are integers, and need to be shifted by 1 bit to
    have calculations performed."
    
    Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
    Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
    Release-acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
 tools/ocaml/xenstored/systemd_stubs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/ocaml/xenstored/systemd_stubs.c 
b/tools/ocaml/xenstored/systemd_stubs.c
index 1bd5dea..a78a72b 100644
--- a/tools/ocaml/xenstored/systemd_stubs.c
+++ b/tools/ocaml/xenstored/systemd_stubs.c
@@ -124,7 +124,7 @@ CAMLprim value ocaml_sd_listen_fds(value connect_to)
        CAMLparam1(connect_to);
        CAMLlocal1(sock_ret);
 
-       sock_ret = Val_int(-1);
+       sock_ret = Val_int(-1U);
 
        CAMLreturn(sock_ret);
 }
@@ -144,7 +144,7 @@ CAMLprim value ocaml_sd_notify_ready(value ignore)
        CAMLparam1(ignore);
        CAMLlocal1(ret);
 
-       ret = Val_int(-1);
+       ret = Val_int(-1U);
 
        CAMLreturn(ret);
 }
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

 


Rackspace

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