diff options
Diffstat (limited to 'libpam')
-rw-r--r-- | libpam/pam_start.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libpam/pam_start.c b/libpam/pam_start.c index ef1dae1d..f8955854 100644 --- a/libpam/pam_start.c +++ b/libpam/pam_start.c @@ -34,6 +34,11 @@ int pam_start ( return (PAM_BUF_ERR); } + /* All service names should be files below /etc/pam.d and nothing + else. Forbid paths. */ + if (strrchr(service_name, '/') != NULL) + service_name = strrchr(service_name, '/') + 1; + /* Mark the caller as the application - permission to do certain things is limited to a module or an application */ |