Merge "platform: msm_shared: Add support for msm8940"
diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index 892ec72..6ac4a14 100644
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -708,7 +708,7 @@
 void generate_atags(unsigned *ptr, const char *cmdline,
                     void *ramdisk, unsigned ramdisk_size)
 {
-
+	unsigned *orig_ptr = ptr;
 	ptr = atag_core(ptr);
 	ptr = atag_ramdisk(ptr, ramdisk, ramdisk_size);
 	ptr = target_atag_mem(ptr);
@@ -718,8 +718,18 @@
 		ptr = atag_ptable(&ptr);
 	}
 
-	ptr = atag_cmdline(ptr, cmdline);
-	ptr = atag_end(ptr);
+	/*
+	 * Atags size filled till + cmdline size + 1 unsigned for 4-byte boundary + 4 unsigned
+	 * for atag identifier in atag_cmdline and atag_end should be with in MAX_TAGS_SIZE bytes
+	 */
+	if (((ptr - orig_ptr) + strlen(cmdline) + 5 * sizeof(unsigned)) <  MAX_TAGS_SIZE) {
+		ptr = atag_cmdline(ptr, cmdline);
+		ptr = atag_end(ptr);
+	}
+	else {
+		dprintf(CRITICAL,"Crossing ATAGs Max size allowed\n");
+		ASSERT(0);
+	}
 }
 
 typedef void entry_func_ptr(unsigned, unsigned, unsigned*);
diff --git a/platform/msm_shared/display_menu.c b/platform/msm_shared/display_menu.c
index fb4e0a8..cea4937 100644
--- a/platform/msm_shared/display_menu.c
+++ b/platform/msm_shared/display_menu.c
@@ -257,12 +257,16 @@
 
 	/* Align Right */
 	str_target = str_align_right(str1, big_factor);
-	if(str_target != NULL)
+	if(str_target != NULL) {
 		display_fbcon_menu_message(str_target, FBCON_TITLE_MSG, big_factor);
+		free(str_target);
+	}
 
 	str_target = str_align_right(str2, common_factor);
-	if(str_target != NULL)
+	if(str_target != NULL) {
 		display_fbcon_menu_message(str_target, FBCON_TITLE_MSG, common_factor);
+		free(str_target);
+	}
 
 	display_fbcon_menu_message("\n< More options\n",
 		FBCON_COMMON_MSG, common_factor);
@@ -296,9 +300,6 @@
 		"Your device will boot in 5 seconds\n\n", FBCON_COMMON_MSG, common_factor);
 
 	msg_info->info.msg_type = type;
-	if(str_target) {
-		free(str_target);
-	}
 
 	/* Initialize the time out time */
 	msg_info->info.timeout_time = 5000; //5s