Previously, calls to WMIsPLString, WMIsPLData, WMIsPLArray, and
WMIsPLDictionary would result in a segfault if the argument was null.
This could happen, e.g., if we are checking which type of proplist
was just parsed from a file, but the parsing failed.

These functions now return False in this case.
---
 WINGs/proplist.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/WINGs/proplist.c b/WINGs/proplist.c
index 5f68eace..55188964 100644
--- a/WINGs/proplist.c
+++ b/WINGs/proplist.c
@@ -1253,22 +1253,34 @@ int WMGetPropListItemCount(WMPropList * plist)
 
 Bool WMIsPLString(WMPropList * plist)
 {
-       return (plist->type == WPLString);
+       if (plist)
+               return (plist->type == WPLString);
+       else
+               return False;
 }
 
 Bool WMIsPLData(WMPropList * plist)
 {
-       return (plist->type == WPLData);
+       if (plist)
+               return (plist->type == WPLData);
+       else
+               return False;
 }
 
 Bool WMIsPLArray(WMPropList * plist)
 {
-       return (plist->type == WPLArray);
+       if (plist)
+               return (plist->type == WPLArray);
+       else
+               return False;
 }
 
 Bool WMIsPLDictionary(WMPropList * plist)
 {
-       return (plist->type == WPLDictionary);
+       if (plist)
+               return (plist->type == WPLDictionary);
+       else
+               return False;
 }
 
 Bool WMIsPropListEqualTo(WMPropList * plist, WMPropList * other)
-- 
2.11.0


-- 
To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.

Reply via email to