Acked-by: Igor Mammedov <[email protected]>
On Fri, Jan 7, 2011 at 5:11 PM, Jeff Layton <[email protected]> wrote: > Signed-off-by: Jeff Layton <[email protected]> > --- > cifs.upcall.c | 17 +++++++++++++++++ > 1 files changed, 17 insertions(+), 0 deletions(-) > > diff --git a/cifs.upcall.c b/cifs.upcall.c > index d83dddf..12df8cc 100644 > --- a/cifs.upcall.c > +++ b/cifs.upcall.c > @@ -444,12 +444,14 @@ handle_krb5_mech(const char *oid, const char > *principal, DATA_BLOB * secblob, > #define DKD_HAVE_UID 0x10 > #define DKD_HAVE_PID 0x20 > #define DKD_HAVE_CREDUID 0x40 > +#define DKD_HAVE_USERNAME 0x80 > #define DKD_MUSTHAVE_SET (DKD_HAVE_HOSTNAME|DKD_HAVE_VERSION|DKD_HAVE_SEC) > > struct decoded_args { > int ver; > char *hostname; > char *ip; > + char *username; > uid_t uid; > uid_t creduid; > pid_t pid; > @@ -495,6 +497,20 @@ decode_key_description(const char *desc, struct > decoded_args *arg) > return 1; > } > retval |= DKD_HAVE_IP; > + } else if (strncmp(tkn, "user=", 5) == 0) { > + if (pos == NULL) > + len = strlen(tkn); > + else > + len = pos - tkn; > + > + len -= 5; > + SAFE_FREE(arg->username); > + arg->username = strndup(tkn + 5, len); > + if (arg->username == NULL) { > + syslog(LOG_ERR, "Unable to allocate memory"); > + return 1; > + } > + retval |= DKD_HAVE_USERNAME; > } else if (strncmp(tkn, "pid=", 4) == 0) { > errno = 0; > arg->pid = strtol(tkn + 4, NULL, 0); > @@ -865,6 +881,7 @@ out: > SAFE_FREE(ccname); > SAFE_FREE(arg.hostname); > SAFE_FREE(arg.ip); > + SAFE_FREE(arg.username); > SAFE_FREE(keydata); > return rc; > } > -- > 1.7.3.4 > > N�����r��y����b�X��ǧv�^�){.n�+����{�r'��{ay�ʇڙ�,j��f���h���z��w��� ���j:+v���w�j�m��������zZ+�����ݢj"��!�i
