diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 14a9b08f2d..8408081290 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2303,6 +2303,7 @@ virSkipSpacesBackwards; virStrcpy; virStrdup; virStringArrayHasString; +virStringBufferIsPrintable; virStringEncodeBase64; virStringFreeList; virStringFreeListCount; diff --git a/src/util/virstring.c b/src/util/virstring.c index 2702cecf20..0177a95210 100644 --- a/src/util/virstring.c +++ b/src/util/virstring.c @@ -1069,6 +1069,25 @@ virStringIsPrintable(const char *str) } +/** + * virBufferIsPrintable: + * + * Returns true if @buf of @buflen contains only printable characters + */ +bool +virStringBufferIsPrintable(const uint8_t *buf, + size_t buflen) +{ + size_t i; + + for (i = 0; i < buflen; i++) + if (!c_isprint(buf[i])) + return false; + + return true; +} + + /** * virStringEncodeBase64: * @buf: buffer of bytes to encode diff --git a/src/util/virstring.h b/src/util/virstring.h index 6bc2726a17..040771e832 100644 --- a/src/util/virstring.h +++ b/src/util/virstring.h @@ -276,6 +276,7 @@ bool virStringHasControlChars(const char *str); void virStringStripControlChars(char *str); bool virStringIsPrintable(const char *str); +bool virStringBufferIsPrintable(const uint8_t *buf, size_t buflen); char *virStringEncodeBase64(const uint8_t *buf, size_t buflen);