antivirusDetection.vbs |   30 ++++++++++++++++++------------
 configure.ac           |   40 ++++++++++++++++++++++------------------
 2 files changed, 40 insertions(+), 30 deletions(-)

New commits:
commit 8d8f62852a64bd2fcae47a9499406d9167aebf83
Author:     Michel Thomas <michelphoeni...@gmail.com>
AuthorDate: Tue Feb 11 21:34:57 2020 +0530
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Wed Feb 12 09:14:03 2020 +0100

    tdf#84553 Correctly handle failures while getting a WMI Object.
    
    The output before this patch : checking for active Antivirus software... 
C:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\antivirusDetection.vbs(1,
 1) (null): 0x8004100E
    
    found
    
    The link for which is : 
https://ci.libreoffice.org/job/gerrit_windows/57035/consoleFull
    
    Change-Id: I714442739a8daf132e95b9f6a750aa7abab3561e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88465
    Tested-by: Mike Kaganski <mike.kagan...@collabora.com>
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/antivirusDetection.vbs b/antivirusDetection.vbs
index a4e76731f0b6..ad22e267343d 100755
--- a/antivirusDetection.vbs
+++ b/antivirusDetection.vbs
@@ -1,19 +1,25 @@
+On Error Resume Next
 Set objWMIService = 
GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\SecurityCenter2")
-Set installedAntiviruses = objWMIService.ExecQuery("Select * from 
AntivirusProduct")
+If objWMIService is Nothing Then
+    Wscript.StdOut.Write "NULL"
+Else
+    Set installedAntiviruses = objWMIService.ExecQuery("Select * from 
AntivirusProduct")
 'Iterates through all the antivirus software,retrieved by the WMI 
query,present on the system and prints only the ones that are active
 'this is done by checking the 12th bit of the productState property of the 
antivirus
 'if 12th bit is on then it means that the antivirus is in active state
 'if 12th bit is off then it is inactive.
 'see http://neophob.com/2010/03/wmi-query-windows-securitycenter2/
-count=0
-list=""
-For Each antivirus in installedAntiviruses
-    If  antivirus.productState And &h01000 Then 'checking the state of the 
12th bit of productState property of the antivirus
-    count=count+1
-    list=list & VBNewLine & VBtab & "*" & antivirus.displayName
+    count=0
+    list=""
+    For Each antivirus in installedAntiviruses
+        If  antivirus.productState And &h01000 Then 'checking the state of the 
12th bit of productState property of the antivirus
+            count=count+1
+            list=list & VBNewLine & VBtab & "*" & antivirus.displayName
+        End if
+    Next
+    If count = 0 Then
+        Wscript.StdOut.Write "NOT_FOUND"
+    Else
+        Wscript.Echo list
     End if
-Next
-If count = 0 Then
- Wscript.StdOut.Write "NOT_FOUND"
-Else Wscript.Echo list
-End if
+End if
\ No newline at end of file
diff --git a/configure.ac b/configure.ac
index 615c9f2df8ee..4713f269ccbf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12980,24 +12980,28 @@ dnl 
===================================================================
 if test $_os = WINNT ; then
     AC_MSG_CHECKING([for active Antivirus software])
     ANTIVIRUS_LIST=`cscript.exe //Nologo $SRC_ROOT/antivirusDetection.vbs`
-    if [ [ "$ANTIVIRUS_LIST" != "NOT_FOUND" ] ]; then
-        AC_MSG_RESULT([found])
-        
EICAR_STRING='X5O!P%@AP@<:@4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'
-        echo $EICAR_STRING > $SRC_ROOT/eicar
-        EICAR_TEMP_FILE_CONTENTS=`cat $SRC_ROOT/eicar`
-        rm $SRC_ROOT/eicar
-        if [ [ "$EICAR_STRING" != "$EICAR_TEMP_FILE_CONTENTS" ] ]; then
-            AC_MSG_ERROR([Exclude the build and source directories associated 
with LibreOffice in the following Antivirus software: $ANTIVIRUS_LIST])
-        fi
-        echo $EICAR_STRING > $BUILDDIR/eicar
-        EICAR_TEMP_FILE_CONTENTS=`cat $BUILDDIR/eicar`
-        rm $BUILDDIR/eicar
-        if [ [ "$EICAR_STRING" != "$EICAR_TEMP_FILE_CONTENTS" ] ]; then
-            AC_MSG_ERROR([Exclude the build and source directories associated 
with LibreOffice in the following Antivirus software: $ANTIVIRUS_LIST])
-        fi
-        add_warning "To speed up builds and avoid failures in unit tests, it 
is highly recommended that you exclude the build and source directories 
associated with LibreOffice in the following Antivirus software: 
$ANTIVIRUS_LIST"
-    else
-        AC_MSG_RESULT([not found])
+    if [ [ "$ANTIVIRUS_LIST" != "NULL" ] ]; then
+        if [ [ "$ANTIVIRUS_LIST" != "NOT_FOUND" ] ]; then
+            AC_MSG_RESULT([found])
+            
EICAR_STRING='X5O!P%@AP@<:@4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'
+            echo $EICAR_STRING > $SRC_ROOT/eicar
+            EICAR_TEMP_FILE_CONTENTS=`cat $SRC_ROOT/eicar`
+            rm $SRC_ROOT/eicar
+            if [ [ "$EICAR_STRING" != "$EICAR_TEMP_FILE_CONTENTS" ] ]; then
+                AC_MSG_ERROR([Exclude the build and source directories 
associated with LibreOffice in the following Antivirus software: 
$ANTIVIRUS_LIST])
+            fi
+            echo $EICAR_STRING > $BUILDDIR/eicar
+            EICAR_TEMP_FILE_CONTENTS=`cat $BUILDDIR/eicar`
+            rm $BUILDDIR/eicar
+            if [ [ "$EICAR_STRING" != "$EICAR_TEMP_FILE_CONTENTS" ] ]; then
+                AC_MSG_ERROR([Exclude the build and source directories 
associated with LibreOffice in the following Antivirus software: 
$ANTIVIRUS_LIST])
+            fi
+            add_warning "To speed up builds and avoid failures in unit tests, 
it is highly recommended that you exclude the build and source directories 
associated with LibreOffice in the following Antivirus software: 
$ANTIVIRUS_LIST"
+        else
+            AC_MSG_RESULT([not found])
+        fi
+    else
+        AC_MSG_RESULT([n/a])
     fi
 fi
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to