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 devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel