shared/frame: NULL check before attempting to deref

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
diff --git a/shared/frame.c b/shared/frame.c
index 2f24f82..a039d15 100644
--- a/shared/frame.c
+++ b/shared/frame.c
@@ -736,16 +736,16 @@
 {
 	struct frame_pointer *pointer = frame_pointer_get(frame, data);
 	struct frame_pointer_button *button;
-	enum theme_location location;
+	enum theme_location location = THEME_LOCATION_EXTERIOR;
+
+	if (!pointer)
+		return location;
 
 	location = theme_get_location(frame->theme, pointer->x, pointer->y,
 				      frame->width, frame->height,
 				      frame->flags & FRAME_FLAG_MAXIMIZED ?
 				      THEME_FRAME_MAXIMIZED : 0);
 
-	if (!pointer)
-		return location;
-
 	if (state == FRAME_BUTTON_PRESSED) {
 		button = malloc(sizeof *button);
 		if (!button)
@@ -784,7 +784,7 @@
 	if (id > 0)
 		return;
 
-	if (button) {
+	if (touch && button) {
 		touch->button = button;
 		frame_button_press(touch->button);
 		return;
@@ -822,10 +822,9 @@
 	if (id > 0)
 		return;
 
-	if (touch->button) {
+	if (touch && touch->button) {
 		frame_button_release(touch->button);
 		frame_touch_destroy(touch);
-		return;
 	}
 }