[PATCH rhsrvany] fix crash due to access beyond array end

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

 



If rhsrvany is called without non-option arguments, as is the case when
it's run as a service, compat_tmain(argc, argv) accesses argv[argc]
which is invalid.  (For me it crashes reliably in 64bit Windows).

Signed-off-by: Roman Kagan <rkagan@xxxxxxxxxxxxx>
---
 RHSrvAny/RHSrvAny.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/RHSrvAny/RHSrvAny.c b/RHSrvAny/RHSrvAny.c
index 0258031..8047495 100644
--- a/RHSrvAny/RHSrvAny.c
+++ b/RHSrvAny/RHSrvAny.c
@@ -113,16 +113,15 @@ compat_tmain (int argc, TCHAR *argv[])
 
         /* Stop parsing arguments when we hit something which isn't an option */
         else {
+            if (lstrcmpi(arg, TEXT("install")) == 0) {
+                return SvcInstall();
+            } else if (lstrcmpi(arg, TEXT("uninstall")) == 0) {
+                return SvcUninstall();
+            }
             break;
         }
     }
 
-    if (lstrcmpi(argv[i], TEXT("install")) == 0) {
-        return SvcInstall();
-    } else if (lstrcmpi(argv[i], TEXT("uninstall")) == 0) {
-        return SvcUninstall();
-    }
-
     DispatchTable[0].lpServiceName = svcname;
     DispatchTable[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTION) SvcMain;
     DispatchTable[1].lpServiceName = NULL;
-- 
2.1.0

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list



[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux