On Wed, 2014-07-02 at 16:20 +0300, Andy Shevchenko wrote:
> Let's use kernel's library function to escape a buffer.
[]
> diff --git a/drivers/staging/rtl8192e/rtllib.h
> b/drivers/staging/rtl8192e/rtllib.h
[]
> @@ -2956,7 +2957,6 @@ extern inline int rtllib_get_scans(struct rtllib_device
> *ieee)
> static inline const char *escape_essid(const char *essid, u8 essid_len)
> {
> static char escaped[IW_ESSID_MAX_SIZE * 2 + 1];
> - const char *s = essid;
> char *d = escaped;
>
> if (rtllib_is_empty_essid(essid, essid_len)) {
> @@ -2965,15 +2965,8 @@ static inline const char *escape_essid(const char
> *essid, u8 essid_len)
> }
>
> essid_len = min(essid_len, (u8)IW_ESSID_MAX_SIZE);
> - while (essid_len--) {
> - if (*s == '\0') {
> - *d++ = '\\';
> - *d++ = '0';
> - s++;
> - } else {
> - *d++ = *s++;
> - }
> - }
> + d += string_escape_mem(essid, essid_len, escaped, sizeof(escaped) - 1,
> + ESCAPE_NULL, NULL);
I'd've probably used
d += string_escape_mem(essid, essid_len, d, ...
or
d = escaped + string_escap_mem(essid, essid_len, escaped, ...
so there's some relation between the thing being added to
> *d = '\0';
or maybe not used d at all with
escaped[1 + string_escape_mem(etc...)] = 0;
> return escaped;
> }
Unrelated but this isn't a thread safe or multiple instance
safe function.
It seems it's used only in debugging message output though.
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel