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

Re: [win-pv-devel] [PATCH] Fix heap corruption in co-installer



Il 13/10/2014 14:23, Paul Durrant ha scritto:
-----Original Message-----
From: win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx [mailto:win-pv-devel-
bounces@xxxxxxxxxxxxxxxxxxxx] On Behalf Of Fabio Fantoni
Sent: 13 October 2014 13:21
To: Paul Durrant; win-pv-devel@xxxxxxxxxxxxxxxxxxxx
Subject: Re: [win-pv-devel] [PATCH] Fix heap corruption in co-installer

Il 07/10/2014 16:57, Paul Durrant ha scritto:
The co-installer was corrupting its heap by trying to free a pointer after
incrementing it from its original value.

Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
I saw that this patch is still not in repository, may have problems and
should be tested before?
Sorry. My mistake. I had neglected to push after applying. It's there now.

It should solves xenbus upgrade problem, right?

Yes, it should.

   Paul

Thanks for patch and reply.
I did new xenbus build and tested it.
On W 8.1 where I not tried previous update new xenbus installed successfull.
On W7 where I tested previous xenbus update failed now still fails and I also can't unistall it from control panel->software because xenbus entry is nomore present.
Is there a way to solves?
Probably this patch solves completly the update problem and my problem with W7 domUs is caused by previous update failed where I had to do a xl destroy.

Thanks for any reply and sorry for my bad english.


Thanks for any reply.

---
   src/coinst/coinst.c | 10 ++++++----
   src/xenbus.inf      |  2 +-
   2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
index 27d3211..59726f5 100644
--- a/src/coinst/coinst.c
+++ b/src/coinst/coinst.c
@@ -1132,6 +1132,7 @@ MatchExistingDriver(
       DWORD   MaxValueLength;
       DWORD   DriverDescLength;
       PTCHAR  DriverDesc = NULL;
+    DWORD   ProductNameLength;
       DWORD   Type;

       // Look for a legacy platform device
@@ -1213,16 +1214,17 @@ found:
           goto fail9;
       }

+    ProductNameLength = (DWORD)strlen(PRODUCT_NAME_STR);
+
       if (strncmp(DriverDesc,
                   PRODUCT_NAME_STR,
-                strlen(PRODUCT_NAME_STR)) != 0) {
+                ProductNameLength) != 0) {
           SetLastError(ERROR_INSTALL_FAILURE);
           goto fail10;
       }

-    DriverDesc += strlen(PRODUCT_NAME_STR);
-
-    if (strcmp(DriverDesc, " PV Bus") != 0) {
+    if (strcmp(DriverDesc + ProductNameLength,
+               " PV Bus") != 0) {
           SetLastError(ERROR_INSTALL_FAILURE);
           goto fail11;
       }
diff --git a/src/xenbus.inf b/src/xenbus.inf
index fe01c79..544bb2c 100644
--- a/src/xenbus.inf
+++ b/src/xenbus.inf
@@ -72,8 +72,8 @@
xenbus_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VER
SION@_@BUILD_NUMBER@.dll
   CopyFiles=XenBus_Copyfiles

   [XenBus_Inst.Services]
-AddService=xenfilt,,XenFilt_Service,
   AddService=xenbus,0x02,XenBus_Service,
+AddService=xenfilt,,XenFilt_Service,

   [XenBus_Service]
   DisplayName=%XenBusDesc%

_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


 


Rackspace

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