diff options
author | des <des@FreeBSD.org> | 2013-03-04 18:51:53 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2013-03-04 18:51:53 +0000 |
commit | a46fb687f8ad27ff1856cbb9e63ffeedfe32a01e (patch) | |
tree | 0bbbe3b7ce12b5406f91a5a007f7089945373711 /contrib/openpam/lib | |
parent | 844e77458d89ac3e387f0df5c205866061dc5172 (diff) | |
download | FreeBSD-src-a46fb687f8ad27ff1856cbb9e63ffeedfe32a01e.zip FreeBSD-src-a46fb687f8ad27ff1856cbb9e63ffeedfe32a01e.tar.gz |
Merge upstream r634:646: correctly parse mixed quoted / unquoted text.
Diffstat (limited to 'contrib/openpam/lib')
-rw-r--r-- | contrib/openpam/lib/openpam_readline.c | 6 | ||||
-rw-r--r-- | contrib/openpam/lib/openpam_readword.c | 7 |
2 files changed, 3 insertions, 10 deletions
diff --git a/contrib/openpam/lib/openpam_readline.c b/contrib/openpam/lib/openpam_readline.c index 014acfb..047ab8369 100644 --- a/contrib/openpam/lib/openpam_readline.c +++ b/contrib/openpam/lib/openpam_readline.c @@ -62,11 +62,9 @@ openpam_readline(FILE *f, int *lineno, size_t *lenp) size_t len, size; int ch; - if ((line = malloc(size = MIN_LINE_LENGTH)) == NULL) { - openpam_log(PAM_LOG_ERROR, "malloc(): %m"); + line = NULL; + if (openpam_straddch(&line, &size, &len, 0) != 0) return (NULL); - } - len = 0; for (;;) { ch = fgetc(f); /* strip comment */ diff --git a/contrib/openpam/lib/openpam_readword.c b/contrib/openpam/lib/openpam_readword.c index 74a4d46..1c0e9b6 100644 --- a/contrib/openpam/lib/openpam_readword.c +++ b/contrib/openpam/lib/openpam_readword.c @@ -86,13 +86,8 @@ openpam_readword(FILE *f, int *lineno, size_t *lenp) /* begin quote */ quote = ch; /* edge case: empty quoted string */ - if (word == NULL && (word = malloc(1)) == NULL) { - openpam_log(PAM_LOG_ERROR, "malloc(): %m"); - errno = ENOMEM; + if (openpam_straddch(&word, &size, &len, 0) != 0) return (NULL); - } - *word = '\0'; - size = 1; } else if (ch == quote && !escape) { /* end quote */ quote = 0; |