elc_hoversel: Fix crash when no sd->last_location
authorChristopher Michael <cp.michael@samsung.com>
Sat, 27 Apr 2019 18:21:43 +0000 (14:21 -0400)
committerWoochanlee <wc0917.lee@samsung.com>
Tue, 30 Apr 2019 01:03:06 +0000 (10:03 +0900)
As we cannot pass NULL to strcmp (crashes when we do), we should check
for a valid sd->last_location here in order to avoid crashing. This
was detected in Enlightenment Screen Settings dialog by selecting a
monitor in the hoversel drop down.

@fix

src/lib/elementary/elc_hoversel.c

index 68248aa..6231493 100644 (file)
@@ -329,7 +329,7 @@ _sizing_eval(void *data)
 
    if (sd->horizontal)
      {
-        if (!strcmp(sd->last_location, "left"))
+        if ((sd->last_location) && (!strcmp(sd->last_location, "left")))
           {
              adjusted.x = parent.x;
              if ((adjusted.x + adjusted.w) > base.x)
@@ -347,7 +347,7 @@ _sizing_eval(void *data)
      }
    else
      {
-        if (!strcmp(sd->last_location, "top"))
+        if ((sd->last_location) && (!strcmp(sd->last_location, "top")))
           {
              adjusted.y = parent.y;
              if ((adjusted.y + adjusted.h) > base.y)