Vladimir N. Oleynik writes:
This moment have algoritmicaly problem, not overflow:
strcat(wrapped, wrapped) - may be looped.
Hand patch:
- else if (strstr(strcat(wrapped, wrapped), newmono))
+ else {
+ safe_strncpy(wrapped + lenwrap, wrapped, lenwrap + 1);
+ if (strstr(wrapped, newmono))
+}
--w
vodz
This commit is contained in:
@@ -157,8 +157,11 @@ password_check(const char *old, const char *newval, const struct passwd *pwdp)
|
||||
else if (similiar(wrapped, newmono))
|
||||
msg = "too similiar";
|
||||
|
||||
else if (strstr(strcat(wrapped, wrapped), newmono))
|
||||
else {
|
||||
safe_strncpy(wrapped + lenwrap, wrapped, lenwrap + 1);
|
||||
if (strstr(wrapped, newmono))
|
||||
msg = "rotated";
|
||||
}
|
||||
|
||||
bzero(newmono, strlen(newmono));
|
||||
bzero(wrapped, lenwrap);
|
||||
|
||||
Reference in New Issue
Block a user