Fixup array1dTo2d and print utilities.

- The mananer in which handled nonzero rows and zero columns were
incompatible, resulting field crash.
- There was no handling of malloc failures.

Bug: 138535981
Test: Run Dumpstate commands.
Change-Id: Iaf3fbf9377ab9da519f759015b4493f0e35e6836
Signed-off-by: Harpreet "Eli" Sangha <eliptus@google.com>
diff --git a/fts_lib/ftsTool.c b/fts_lib/ftsTool.c
index de51a8f..6a3f7c5 100644
--- a/fts_lib/ftsTool.c
+++ b/fts_lib/ftsTool.c
@@ -355,22 +355,22 @@
 	int i;
 	short **matrix = NULL;
 
-	if (size == 0) {
-		matrix = (short **)kmalloc_array(1,
-				sizeof(short *), GFP_KERNEL);
-		matrix[0] = (short *)kmalloc_array(0,
-				sizeof(short), GFP_KERNEL);
-	} else {
+	if (size != 0)
 		matrix = (short **)kmalloc_array(((int)(size / columns)),
 				sizeof(short *), GFP_KERNEL);
 
-		if (matrix != NULL) {
-			for (i = 0; i < (int)(size / columns); i++)
-				matrix[i] = (short *)kmalloc_array(columns,
-						sizeof(short), GFP_KERNEL);
+	if (matrix != NULL) {
+		for (i = 0; i < (int)(size / columns); i++) {
+			matrix[i] = (short *)kmalloc_array(columns,
+					sizeof(short), GFP_KERNEL);
+			if (!matrix[i])
+				break;
+		}
 
-			for (i = 0; i < size; i++)
-				matrix[i / columns][i % columns] = data[i];
+		for (i = 0; i < size; i++) {
+			if (!matrix[i / columns])
+				break;
+			matrix[i / columns][i % columns] = data[i];
 		}
 	}
 
@@ -391,20 +391,22 @@
 	int i;
 	u16 **matrix = NULL;
 
-	if (size == 0) {
-		matrix = (u16 **)kmalloc_array(1, sizeof(u16 *), GFP_KERNEL);
-		matrix[0] = (u16 *)kmalloc_array(0, sizeof(u16), GFP_KERNEL);
-	} else {
+	if (size != 0)
 		matrix = (u16 **)kmalloc_array(((int)(size / columns)),
 				sizeof(u16 *), GFP_KERNEL);
 
-		if (matrix != NULL) {
-			for (i = 0; i < (int)(size / columns); i++)
-				matrix[i] = (u16 *)kmalloc_array(columns,
-						sizeof(u16), GFP_KERNEL);
+	if (matrix != NULL) {
+		for (i = 0; i < (int)(size / columns); i++) {
+			matrix[i] = (u16 *)kmalloc_array(columns,
+					sizeof(u16), GFP_KERNEL);
+			if (!matrix[i])
+				break;
+		}
 
-			for (i = 0; i < size; i++)
-				matrix[i / columns][i % columns] = data[i];
+		for (i = 0; i < size; i++) {
+			if (!matrix[i / columns])
+				break;
+			matrix[i / columns][i % columns] = data[i];
 		}
 	}
 
@@ -425,22 +427,23 @@
 	int i;
 	u8 **matrix = NULL;
 
-	if (size == 0) {
-		matrix = (u8 **)kmalloc_array(1, sizeof(u8 *), GFP_KERNEL);
-
-		matrix[0] = (u8 *)kmalloc_array(0, sizeof(u8), GFP_KERNEL);
-	} else {
-
+	if (size != 0) {
 		matrix = (u8 **)kmalloc_array(((int)(size / columns)),
 				sizeof(u8 *), GFP_KERNEL);
+	}
 
-		if (matrix != NULL) {
-			for (i = 0; i < (int)(size / columns); i++)
-				matrix[i] = (u8 *)kmalloc_array(columns,
-						sizeof(u8), GFP_KERNEL);
+	if (matrix != NULL) {
+		for (i = 0; i < (int)(size / columns); i++) {
+			matrix[i] = (u8 *)kmalloc_array(columns,
+					sizeof(u8), GFP_KERNEL);
+			if (!matrix[i])
+				break;
+		}
 
-			for (i = 0; i < size; i++)
-				matrix[i / columns][i % columns] = data[i];
+		for (i = 0; i < size; i++) {
+			if (!matrix[i / columns])
+				break;
+			matrix[i / columns][i % columns] = data[i];
 		}
 	}
 
@@ -461,20 +464,22 @@
 	int i;
 	i8 **matrix = NULL;
 
-	if (size == 0) {
-		matrix = (i8 **)kmalloc_array(1, sizeof(i8 *), GFP_KERNEL);
-		matrix[0] = (i8 *)kmalloc_array(0, sizeof(i8), GFP_KERNEL);
-	} else {
+	if (size != 0)
 		matrix = (i8 **)kmalloc_array(((int)(size / columns)),
 				sizeof(i8 *), GFP_KERNEL);
 
-		if (matrix != NULL) {
-			for (i = 0; i < (int)(size / columns); i++)
-				matrix[i] = (i8 *)kmalloc_array(columns,
-						sizeof(i8), GFP_KERNEL);
+	if (matrix != NULL) {
+		for (i = 0; i < (int)(size / columns); i++) {
+			matrix[i] = (i8 *)kmalloc_array(columns,
+					sizeof(i8), GFP_KERNEL);
+			if (!matrix[i])
+				break;
+		}
 
-			for (i = 0; i < size; i++)
-				matrix[i / columns][i % columns] = data[i];
+		for (i = 0; i < size; i++) {
+			if (!matrix[i / columns])
+				break;
+			matrix[i / columns][i % columns] = data[i];
 		}
 	}
 
@@ -495,6 +500,11 @@
 	int buff_len, index;
 	char *buff;
 
+	pr_info("%s\n", label);
+
+	if (matrix == NULL)
+		return;
+
 	buff_len = (6 + 1) * column + 1; /* -32768 str len: 6 */
 	buff = kzalloc(buff_len, GFP_KERNEL);
 	if (buff == NULL) {
@@ -502,8 +512,9 @@
 		return;
 	}
 
-	pr_info("%s\n", label);
 	for (i = 0; i < row; i++) {
+		if (!matrix[i])
+			break;
 		index = 0;
 		for (j = 0; j < column; j++)
 			index += scnprintf(buff + index, buff_len - index,
@@ -529,6 +540,11 @@
 	int buff_len, index;
 	char *buff;
 
+	pr_info("%s\n", label);
+
+	if (matrix == NULL)
+		return;
+
 	buff_len = (5 + 1) * column + 1; /* 65535 str len: 5 */
 	buff = kzalloc(buff_len, GFP_KERNEL);
 	if (buff == NULL) {
@@ -536,8 +552,9 @@
 		return;
 	}
 
-	pr_info("%s\n", label);
 	for (i = 0; i < row; i++) {
+		if (!matrix[i])
+			break;
 		index = 0;
 		for (j = 0; j < column; j++)
 			index += scnprintf(buff + index, buff_len - index,
@@ -563,6 +580,11 @@
 	int buff_len, index;
 	char *buff;
 
+	pr_info("%s\n", label);
+
+	if (matrix == NULL)
+		return;
+
 	buff_len = (3 + 1) * column + 1; /* 255 str len: 3 */
 	buff = kzalloc(buff_len, GFP_KERNEL);
 	if (buff == NULL) {
@@ -570,8 +592,9 @@
 		return;
 	}
 
-	pr_info("%s\n", label);
 	for (i = 0; i < row; i++) {
+		if (!matrix[i])
+			break;
 		index = 0;
 		for (j = 0; j < column; j++)
 			index += scnprintf(buff + index, buff_len - index,
@@ -597,6 +620,11 @@
 	int buff_len, index;
 	char *buff;
 
+	pr_info("%s\n", label);
+
+	if (matrix == NULL)
+		return;
+
 	buff_len = (4 + 1) * column + 1; /* -128 str len: 4 */
 	buff = kzalloc(buff_len, GFP_KERNEL);
 	if (buff == NULL) {
@@ -604,8 +632,9 @@
 		return;
 	}
 
-	pr_info("%s\n", label);
 	for (i = 0; i < row; i++) {
+		if (!matrix[i])
+			break;
 		index = 0;
 		for (j = 0; j < column; j++)
 			index += scnprintf(buff + index, buff_len - index,
@@ -631,6 +660,11 @@
 	int buff_len, index;
 	char *buff;
 
+	pr_info("%s\n", label);
+
+	if (matrix == NULL)
+		return;
+
 	buff_len = (10 + 1) * column + 1; /* 4294967295 str len: 10 */
 	buff = kzalloc(buff_len, GFP_KERNEL);
 	if (buff == NULL) {
@@ -638,8 +672,9 @@
 		return;
 	}
 
-	pr_info("%s\n", label);
 	for (i = 0; i < row; i++) {
+		if (!matrix[i])
+			break;
 		index = 0;
 		for (j = 0; j < column; j++)
 			index += scnprintf(buff + index, buff_len - index,
@@ -665,6 +700,11 @@
 	int buff_len, index;
 	char *buff;
 
+	pr_info("%s\n", label);
+
+	if (matrix == NULL)
+		return;
+
 	buff_len = (11 + 1) * column + 1; /* -2147483648 str len: 11 */
 	buff = kzalloc(buff_len, GFP_KERNEL);
 	if (buff == NULL) {
@@ -672,8 +712,9 @@
 		return;
 	}
 
-	pr_info("%s\n", label);
 	for (i = 0; i < row; i++) {
+		if (!matrix[i])
+			break;
 		index = 0;
 		for (j = 0; j < column; j++)
 			index += scnprintf(buff + index, buff_len - index,