changeset 1056:a22c40fd8c63 draft

Trim trailing NULLs from string options, #120.
author Roy Marples <roy@marples.name>
date Tue, 04 Nov 2008 10:04:40 +0000
parents 7dcb76407986
children 066affc10d88
files dhcp.c
diffstat 1 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/dhcp.c	Wed Oct 29 12:57:08 2008 +0000
+++ b/dhcp.c	Tue Nov 04 10:04:40 2008 +0000
@@ -1009,13 +1009,21 @@
 print_string(char *s, ssize_t len, int dl, const uint8_t *data)
 {
 	uint8_t c;
-	const uint8_t *e;
+	const uint8_t *e, *p;
 	ssize_t bytes = 0;
 	ssize_t r;
 
 	e = data + dl;
 	while (data < e) {
 		c = *data++;
+		if (c == '\0') {
+			/* If rest is all NULL, skip it. */
+			for (p = data; p < e; p++)
+				if (*p != '\0')
+					break;
+			if (p == e)
+				break;
+		}
 		if (!isascii(c) || !isprint(c)) {
 			if (s) {
 				if (len < 5) {