Fix display of text strings
diff --git a/tools/sdptool.c b/tools/sdptool.c
index 6074ef7..2fcd0c7 100644
--- a/tools/sdptool.c
+++ b/tools/sdptool.c
@@ -561,7 +561,6 @@
 static void print_raw_data(sdp_data_t *data, int indent)
 {
 	struct uuid_def *def;
-	char *str;
 	int i, hex;
 
 	if (!data)
@@ -661,25 +660,18 @@
 	case SDP_TEXT_STR8:
 	case SDP_TEXT_STR16:
 	case SDP_TEXT_STR32:
-		str = data->val.str;
-		if (data->unitSize > strlen(str) + 1) {
-			hex = 0;
-			for (i = 0; i < data->unitSize - 1; i++)
-				if (!isprint(str[i])) {
-					hex = 1;
-					break;
-				}
-			if (str[data->unitSize - 1] != '\0')
+		hex = 0;
+		for (i = 0; i < data->unitSize; i++)
+			if (!isprint(data->val.str[i])) {
 				hex = 1;
-		} else
-			hex = 0;
-		if (hex) {
-			printf("String");
-			for (i = 0; i < data->unitSize; i++)
-				printf(" %02x", (unsigned char) str[i]);
-			printf("\n");
-		} else
-			printf("String %s\n", str);
+				break;
+			}
+		for (i = 0; i < data->unitSize; i++)
+			if (hex)
+				printf(" %02x", (unsigned char) data->val.str[i]);
+			else
+				printf("%c", data->val.str[i]);
+		printf("\n");
 		break;
 	case SDP_URL_STR8:
 	case SDP_URL_STR16: