projects
/
oweals
/
busybox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
init: fix logically inverted FEATURE_EXTRA_QUIET check
[oweals/busybox.git]
/
libbb
/
obscure.c
diff --git
a/libbb/obscure.c
b/libbb/obscure.c
index 9ac6bcd82ac4b2db2a0891e7d1b282e6d18f84f3..19b87523ec6c5a6f17f52dd1d461d4c0ea65de57 100644
(file)
--- a/
libbb/obscure.c
+++ b/
libbb/obscure.c
@@
-93,11
+93,11
@@
static const char *obscure_msg(const char *old_p, const char *new_p, const struc
/* Add 2 for each type of characters to the minlen of password */
int size = CONFIG_PASSWORD_MINLEN + 8;
const char *p;
/* Add 2 for each type of characters to the minlen of password */
int size = CONFIG_PASSWORD_MINLEN + 8;
const char *p;
- char
hostname[255]
;
+ char
*hostname
;
/* size */
if (!new_p || (length = strlen(new_p)) < CONFIG_PASSWORD_MINLEN)
/* size */
if (!new_p || (length = strlen(new_p)) < CONFIG_PASSWORD_MINLEN)
- return
("too short")
;
+ return
"too short"
;
/* no username as-is, as sub-string, reversed, capitalized, doubled */
if (string_checker(new_p, pw->pw_name)) {
/* no username as-is, as sub-string, reversed, capitalized, doubled */
if (string_checker(new_p, pw->pw_name)) {
@@
-108,12
+108,11
@@
static const char *obscure_msg(const char *old_p, const char *new_p, const struc
return "similar to gecos";
}
/* hostname as-is, as sub-string, reversed, capitalized, doubled */
return "similar to gecos";
}
/* hostname as-is, as sub-string, reversed, capitalized, doubled */
- if (gethostname(hostname, 255) == 0) {
- hostname[254] = '\0';
- if (string_checker(new_p, hostname)) {
- return "similar to hostname";
- }
- }
+ hostname = safe_gethostname();
+ i = string_checker(new_p, hostname);
+ free(hostname);
+ if (i)
+ return "similar to hostname";
/* Should / Must contain a mix of: */
for (i = 0; i < length; i++) {
/* Should / Must contain a mix of: */
for (i = 0; i < length; i++) {
@@
-130,7
+129,8
@@
static const char *obscure_msg(const char *old_p, const char *new_p, const struc
c = 0;
p = new_p;
while (1) {
c = 0;
p = new_p;
while (1) {
- if ((p = strchr(p, new_p[i])) == NULL) {
+ p = strchr(p, new_p[i]);
+ if (p == NULL) {
break;
}
c++;
break;
}
c++;
@@
-157,14
+157,14
@@
static const char *obscure_msg(const char *old_p, const char *new_p, const struc
return NULL;
}
return NULL;
}
-int
obscure(const char *old, const char *newval, const struct passwd *pwdp
)
+int
FAST_FUNC obscure(const char *old, const char *newval, const struct passwd *pw
)
{
const char *msg;
{
const char *msg;
- if ((msg = obscure_msg(old, newval, pwdp))) {
- printf("Bad password: %s.\n", msg);
- /* If user is root warn only */
- return
(getuid())? 1 : 0
;
+ msg = obscure_msg(old, newval, pw);
+ if (msg) {
+ printf("Bad password: %s\n", msg);
+ return
1
;
}
return 0;
}
}
return 0;
}