summaryrefslogtreecommitdiff
path: root/cifs.upcall.c
AgeCommit message (Collapse)AuthorFilesLines
2012-03-29cifs.upcall: use krb5_sname_to_principal to construct principal nameJeff Layton1-27/+20
Currently, we build the string by hand then then construct the principal name with krb5_parse_name. That bypasses the domain_realm section in krb5.conf however. Switch the code to use krb5_sname_to_principal instead which is more suited to this task. In order for that to work, we change a couple of calling functions to pass down a hostname instead of a principal name, and then pass in "cifs" as the service name. Reported-and-Tested-by: Nirupama Karandikar <nkarandi@redhat.com> Signed-off-by: Jeff Layton <jlayton@samba.org>
2012-01-16cifs.upcall: allow admins to specify an alternate krb5.conf fileJeff Layton1-3/+10
This was actually requested by the Red Hat QA group, who sometimes work with multiple krb5.conf files when testing. Requested-by: Marko Myllynen <myllynen@redhat.com> Signed-off-by: Jeff Layton <jlayton@samba.org>
2011-12-03cifs.upcall: try and guess the domain name on unqualified namesJeff Layton1-5/+42
Resolve the unqualified hostname and set AI_CANONNAME to make sure that field is populated. Scan forward to the first '.' in ai_canonname, and append that value onto the unqualified hostname to get a FQDN. Then prepend that value with "cifs/" and try to get a service ticket for that principal. Signed-off-by: Jeff Layton <jlayton@samba.org>
2011-12-03cifs.upcall: move to Andrew's suggested algorithm for picking a principalJeff Layton1-12/+28
Andrew Bartlett suggests the heuristic supplied in the comments. For now, we don't try to guess the domainname when the hostname is not qualified, but add a comment with what needs to be done in order to support that. Also, with this change we no longer need util.o to be linked in. Signed-off-by: Jeff Layton <jlayton@samba.org>
2011-12-03cifs.upcall: always lowercase the hostnameJeff Layton1-0/+12
Most KDCs are case-sensitive (the notable exception being AD), but DNS is case-insensitive. To prevent admins from having to put in all possible case combinations of a principal, lowercase the hostname prior to trying to get a principal. Signed-off-by: Jeff Layton <jlayton@samba.org>
2011-12-03cifs.upcall: move to an on-stack princ bufferJeff Layton1-14/+11
...and check to see if provided hostname will exceed it. Signed-off-by: Jeff Layton <jlayton@samba.org>
2011-11-12cifs.upcall: silence unused parameter warningJeff Layton1-1/+1
cifs.upcall.c: In function ‘cifs_krb5_principal_get_realm’: cifs.upcall.c:80:57: warning: unused parameter ‘context’ [-Wunused-parameter] Signed-off-by: Jeff Layton <jlayton@samba.org>
2011-05-24cifs.upcall: don't syslog usage messageJeff Layton1-1/+0
Signed-off-by: Jeff Layton <jlayton@samba.org>
2011-01-14cifs.upcall: add keytab support for unattended mountsJeff Layton1-0/+78
Based on a patch from a few years ago by Igor Mammedov. This patch adds the ability for cifs.upcall to establish a TGT using the system-default keytab. Signed-off-by: Jeff Layton <jlayton@samba.org> Acked-by: Igor Mammedov <niallain@gmail.com>
2011-01-14cifs.upcall: debug logging for the key description parserJeff Layton1-0/+8
Signed-off-by: Jeff Layton <jlayton@samba.org> Acked-by: Igor Mammedov <niallain@gmail.com>
2011-01-14cifs.upcall: save off username field from key descriptionJeff Layton1-0/+17
Signed-off-by: Jeff Layton <jlayton@samba.org> Acked-by: Igor Mammedov <niallain@gmail.com>
2011-01-14cifs.upcall: clean up key description decoding routineJeff Layton1-14/+16
...and switch the code to using strndup. Check for allocation errors as well, and fix some off-by-one bugs in the ones that decode strings. Signed-off-by: Jeff Layton <jlayton@samba.org> Acked-by: Igor Mammedov <niallain@gmail.com>
2011-01-14cifs.upcall: consolidate find_krb5_cc callsJeff Layton1-15/+13
Signed-off-by: Jeff Layton <jlayton@samba.org> Acked-by: Igor Mammedov <niallain@gmail.com>
2011-01-05cifs.upcall: fix crash when trying to free uninitialized varJeff Layton1-2/+1
If cifs.upcall is passed an invalid argument then it will "goto out". The decoded_args struct however is uninitialized at that point so it will usually segfault when trying to free fields in it. Move the initialization up in the function. Signed-off-by: Jeff Layton <jlayton@samba.org>
2011-01-05cifs.upcall: add 'l' to getopt_long stringJeff Layton1-1/+1
Reported-by: Stefan Walter <walteste@inf.ethz.ch> Signed-off-by: Jeff Layton <jlayton@samba.org> Reviewed-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
2010-12-28cifs.upcall: use krb5_auth_con_set_req_cksumtype() and pass a GSSAPI ↵Stefan Metzmacher1-0/+40
checksum (bug #7890) Some closed source SMB servers doesn't support all checksum types, so we should try to match windows clients. This is almost the same logic which is used by Samba. Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-12-28cifs.upcall: use krb5_auth_con_init() to create an explicit auth_contextStefan Metzmacher1-2/+12
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-12-28cifs.upcall: fix memory and call krb5_auth_con_free()Stefan Metzmacher1-1/+3
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-07-27cifs.upcall: swap c99 initializers for memset callsJeff Layton1-2/+6
gcc says: cifs.upcall.c: In function ‘cifs_krb5_get_req’: cifs.upcall.c:261:2: warning: missing initializer cifs.upcall.c:261:2: warning: (near initialization for ‘in_creds.client’) cifs.upcall.c: In function ‘main’: cifs.upcall.c:622:9: warning: missing initializer cifs.upcall.c:622:9: warning: (near initialization for ‘arg.ver’) ...this is probably just gcc being balky, but we can silence the warning. It may also be a micro optimization in an error condition if we delay zeroing out the struct until it's needed. Signed-off-by: Jeff Layton <jlayton@samba.org>
2010-07-26cifs.upcall: require a uid= or creduid= parmJeff Layton1-0/+5
Even though all known kernels send the uid= parm to userspace, cifs.upcall doesn't technically require it. It should though. If one wasn't sent for some reason, then the setuid wouldn't occur. Error out if there is no uid= or creduid= parm. Signed-off-by: Jeff Layton <jlayton@samba.org>
2010-07-23cifs.upcall: use "creduid=" parm by default when availableJeff Layton1-5/+27
When I did the original krb5 implementation, I goofed and ended up making it so that when someone specifies the "uid=" mount option that also affects the owner of the krb5 credential cache and not just the ownership of the mount. I'm proposing a patch for the kernel to attempt to fix this by making the kernel send a "creduid=" parameter in the upcall which is intended to be the user that should own the credentials cache. That's not necessarily the same user that has "ownership" of the mount. Usually the creduid= will be set to the real uid of the user doing the mounting. When multisession mounts are introduced they will usually set this to the fsuid that walks into the mount. To ease the transition, this patch also adds a command line switch that makes cifs.upcall use the "legacy" uid= parameter instead. Use that if you want it to behave like it used to. Signed-off-by: Jeff Layton <jlayton@samba.org>
2010-04-02cifs-utils: bump version to 4.2cifs-utils-4.2Jeff Layton1-3/+3
- fix URL's and email addresses - update copyright notices Signed-off-by: Jeff Layton <jlayton@samba.org>
2010-04-01cifs.upcall: run it through LindentJeff Layton1-72/+66
...coding style cleanup. Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-04-01cifs-upcall: krb5.h inclusion quick fixTorsten Kurbad1-0/+4
...eventually it might be better to make autoconf set -I/usr/include/krb5 or whatever and get rid of the #ifdef's here. It's a little tricky to figure out the include dir however, so this will do for now. Signed-off-by: Torsten Kurbad <torsten@tk-webart.de>
2010-04-01cifs-upcall: heimdal fixesTorsten Kurbad1-3/+13
Signed-off-by: Torsten Kurbad <torsten@tk-webart.de>
2010-03-20cifs-utils: switch to using autoconf package versionJeff Layton1-2/+1
Rather than using a hardcoded version string, use the VERSION macro that autoconf provides. This will help make it clear what version is actually being used in bug reports when someone runs "mount.cifs -V" or "cifs.upcall --version". Also, clean up AC_INIT and AM_INIT_AUTOMAKE macros. Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-26cifs.upcall: use non-legacy krb5.h locationJeff Layton1-1/+1
<krb5.h> is deprecated in favor of <krb5/krb5.h>. Also, make autoconf throw a more helpful error message if it's not present. Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-20autoconf: make sure C files include config.hJeff Layton1-0/+4
Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-08cifs.upcall: include util.hJeff Layton1-0/+1
Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-08cifs.upcall: remove strncasecmp redefinitionJeff Layton1-9/+1
...no need for that now. Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-07cifs.upcall: include arpa/inet.hJeff Layton1-0/+1
Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-07cifs.upcall: include netdb.hJeff Layton1-0/+1
Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-07cifs.upcall: replace SMB_XMALLOC_ARRAY with callocJeff Layton1-4/+4
Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-07cifs.upcall: include time.hJeff Layton1-0/+1
Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-07cifs.upcall: add a spnego.h fileJeff Layton1-0/+1
...to hold SPNEGO definitions. Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-07cifs.upcall: fix up the includesJeff Layton1-4/+11
Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-07cifs.upcall: replace SMB_STRNDUP with strndupJeff Layton1-1/+1
Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-07cifs.upcall: replace cli_krb5_get_ticketJeff Layton1-3/+84
We need to replace the function that we use to fetch krb5 creds since that's currently provided by a libsmbclient object. Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-07cifs.upcall: don't use smb_krb5_unparse_nameJeff Layton1-4/+18
...we don't really need a talloc-ified version here. Just use the normal one. Also don't use strnequal. Use strncasecmp instead. Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-07cifs.upcall: don't use smb_krb5_principal_get_realmJeff Layton1-1/+26
...we need our own version. Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-02-07Initial import of files from samba master branchJeff Layton1-0/+653
(commit 6e510b49c03be9caba4f587f3f6cec547841b0d7)