errno = EINVAL;
break;
}
- if (!(type & (ASCII | RAW | ESCSTRING)) /*plain string */ &&
+ if (!(type & (ASCII | RAW | ESCSTRING | ESCFILE)) /* plain */ &&
(!isascii(c) && !isprint(c)))
{
errno = EINVAL;
break;
}
- if (type & ESCSTRING &&
- (c == '\\' || !isascii(c) || !isprint(c)))
+ if ((type & (ESCSTRING | ESCFILE) &&
+ (c == '\\' || !isascii(c) || !isprint(c))) ||
+ (type & ESCFILE && (c == '/')))
{
errno = EINVAL;
if (c == '\\') {
if (ifp->wireless) {
ssid[0] = '-';
print_string(ssid + 1, sizeof(ssid) - 1,
- ESCSTRING,
+ ESCFILE,
(const uint8_t *)ifp->ssid, ifp->ssid_len);
} else
ssid[0] = '\0';
#define ASCII (1 << 22)
#define RAW (1 << 23)
#define ESCSTRING (1 << 24)
+#define ESCFILE (1 << 25)
struct dhcp_opt {
uint32_t option; /* Also used for IANA Enterpise Number */