summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--libpam/pam_misc.c12
2 files changed, 7 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 2554bf42..0923a816 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
2006-06-14 Thorsten Kukuk <kukuk@thkukuk.de>
+ * libpam/pam_misc.c (_pam_strdup): Use strlen and strcpy.
+
* configure.in: Remove --enable-memory-debug, add option
to disable prelude if installed.
diff --git a/libpam/pam_misc.c b/libpam/pam_misc.c
index 78e317f7..770c9cce 100644
--- a/libpam/pam_misc.c
+++ b/libpam/pam_misc.c
@@ -122,16 +122,14 @@ char *_pam_strdup(const char *x)
register char *new=NULL;
if (x != NULL) {
- register int i;
+ register int len;
- for (i=0; x[i]; ++i); /* length of string */
- if ((new = malloc(++i)) == NULL) {
- i = 0;
+ len = strlen (x) + 1; /* length of string including NUL */
+ if ((new = malloc(len)) == NULL) {
+ len = 0;
pam_syslog(NULL, LOG_CRIT, "_pam_strdup: failed to get memory");
} else {
- while (i-- > 0) {
- new[i] = x[i];
- }
+ strcpy (new, x);
}
x = NULL;
}