diff options
author | Jeremy Allison <jra@samba.org> | 2007-12-07 17:32:32 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2007-12-07 17:32:32 -0800 |
commit | ec003f39369910dee852b7cafb883ddaa321c2de (patch) | |
tree | a960a6c8955b6485d4b2ae8772bed7f9ef7f627c /source/auth/pampass.c | |
parent | bca371bff8e1dd5099eda1774e5bb0fdbd6a1a77 (diff) | |
download | samba-ec003f39369910dee852b7cafb883ddaa321c2de.tar.gz samba-ec003f39369910dee852b7cafb883ddaa321c2de.tar.xz samba-ec003f39369910dee852b7cafb883ddaa321c2de.zip |
Remove next_token - all uses must now be next_token_talloc.
No more temptations to use static length strings.
Jeremy.
Diffstat (limited to 'source/auth/pampass.c')
-rw-r--r-- | source/auth/pampass.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/source/auth/pampass.c b/source/auth/pampass.c index 739e0a78fdf..554df3c157c 100644 --- a/source/auth/pampass.c +++ b/source/auth/pampass.c @@ -207,15 +207,17 @@ struct chat_struct { static struct chat_struct *make_pw_chat(const char *p) { - fstring prompt; - fstring reply; + char *prompt; + char *reply; struct chat_struct *list = NULL; struct chat_struct *t; + TALLOC_CTX *frame = talloc_stackframe(); while (1) { t = SMB_MALLOC_P(struct chat_struct); if (!t) { DEBUG(0,("make_pw_chat: malloc failed!\n")); + TALLOC_FREE(frame); return NULL; } @@ -223,22 +225,26 @@ static struct chat_struct *make_pw_chat(const char *p) DLIST_ADD_END(list, t, struct chat_struct*); - if (!next_token(&p, prompt, NULL, sizeof(fstring))) + if (!next_token_talloc(frame, &p, &prompt, NULL)) { break; + } - if (strequal(prompt,".")) + if (strequal(prompt,".")) { fstrcpy(prompt,"*"); + } special_char_sub(prompt); fstrcpy(t->prompt, prompt); strlower_m(t->prompt); trim_char(t->prompt, ' ', ' '); - if (!next_token(&p, reply, NULL, sizeof(fstring))) + if (!next_token_talloc(frame, &p, reply, NULL)) { break; + } - if (strequal(reply,".")) - fstrcpy(reply,""); + if (strequal(reply,".")) { + fstrcpy(reply,""); + } special_char_sub(reply); fstrcpy(t->reply, reply); @@ -246,6 +252,7 @@ static struct chat_struct *make_pw_chat(const char *p) trim_char(t->reply, ' ', ' '); } + TALLOC_FREE(frame); return list; } |