summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBo Yang <boyang@samba.org>2010-02-07 15:04:51 +0800
committerKarolin Seeger <kseeger@samba.org>2010-02-08 16:10:04 +0100
commit0ee0ba83dcd9726244b07c1747e0676a74e1d82f (patch)
tree0df3fe06e1bb73779cfefe50d651bf08fdb06790
parentf6484f7febd853122d4b91e52ee896d70686d9d2 (diff)
downloadsamba-0ee0ba83dcd9726244b07c1747e0676a74e1d82f.tar.gz
s3: Fix malformed require_membership_of_sid.
Signed-off-by: Bo Yang <boyang@samba.org> Fix bug #7106.
-rw-r--r--source/nsswitch/pam_winbind.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/nsswitch/pam_winbind.c b/source/nsswitch/pam_winbind.c
index 74540817af0..5dccba1d310 100644
--- a/source/nsswitch/pam_winbind.c
+++ b/source/nsswitch/pam_winbind.c
@@ -1036,6 +1036,7 @@ static bool winbind_name_list_to_sid_string_list(struct pwb_context *ctx,
char *current_name = NULL;
const char *search_location;
const char *comma;
+ int len;
if (sid_list_buffer_size > 0) {
sid_list_buffer[0] = 0;
@@ -1091,6 +1092,17 @@ static bool winbind_name_list_to_sid_string_list(struct pwb_context *ctx,
_make_remark_format(ctx, PAM_TEXT_INFO, _("Cannot convert group %s "
"to sid, please contact your administrator to see "
"if group %s is valid."), search_location, search_location);
+ /*
+ * The lookup of the last name failed..
+ * It results in require_member_of_sid ends with ','
+ * It is malformated parameter here, overwrite the last ','.
+ */
+ len = strlen(sid_list_buffer);
+ if (len) {
+ if (sid_list_buffer[len - 1] == ',') {
+ sid_list_buffer[len - 1] = '\0';
+ }
+ }
}
result = true;