aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libpam/include/pam_inline.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/libpam/include/pam_inline.h b/libpam/include/pam_inline.h
index 8040b865..ec2f3bf0 100644
--- a/libpam/include/pam_inline.h
+++ b/libpam/include/pam_inline.h
@@ -90,17 +90,18 @@ pam_read_passwords(int fd, int npass, char **passwords)
break;
}
- while (npass > 0 && (pptr=memchr(passwords[i]+offset, '\0', rbytes))
- != NULL) {
- rbytes -= pptr - (passwords[i]+offset) + 1;
+ while (npass > 0 &&
+ (pptr = memchr(passwords[i] + offset, '\0', rbytes)) != NULL) {
+ ++pptr; /* skip the '\0' */
+ rbytes -= pptr - (passwords[i] + offset);
i++;
offset = 0;
npass--;
if (rbytes > 0) {
if (npass > 0) {
- memcpy(passwords[i], pptr+1, rbytes);
+ memcpy(passwords[i], pptr, rbytes);
}
- memset(pptr+1, '\0', rbytes);
+ memset(pptr, '\0', rbytes);
}
}
offset += rbytes;