return "too simple";
msg = NULL;
- newmono = str_lower(xstrdup(newval));
- lenwrap = strlen(old) * 2 + 1;
- wrapped = (char *) xmalloc(lenwrap);
+ newmono = str_lower(bb_xstrdup(newval));
+ lenwrap = strlen(old);
+ wrapped = (char *) xmalloc(lenwrap * 2 + 1);
str_lower(strcpy(wrapped, old));
if (palindrome(newmono))
else if (similiar(wrapped, newmono))
msg = "too similiar";
- else if (strstr(strcat(wrapped, wrapped), newmono))
- msg = "rotated";
+ else {
+ safe_strncpy(wrapped + lenwrap, wrapped, lenwrap + 1);
+ if (strstr(wrapped, newmono))
+ msg = "rotated";
+ }
bzero(newmono, strlen(newmono));
- bzero(wrapped, lenwrap);
+ bzero(wrapped, lenwrap * 2);
free(newmono);
free(wrapped);
if (oldlen <= maxlen && newlen <= maxlen)
return NULL;
- new1 = (char *) xstrdup(newval);
- old1 = (char *) xstrdup(old);
+ new1 = (char *) bb_xstrdup(newval);
+ old1 = (char *) bb_xstrdup(old);
if (newlen > maxlen)
new1[maxlen] = '\0';
if (oldlen > maxlen)