savefile and group init fixes

Fixed truncated username
Init user groups before PAM credentials
This commit is contained in:
Niverton 2017-09-02 16:08:36 +02:00 committed by Cylgom
parent ed477e61e3
commit 4ae67ec1a0
2 changed files with 23 additions and 1 deletions

View File

@ -12,10 +12,12 @@
#include <sys/types.h>
#include <linux/limits.h>
#include <grp.h>
#include <pwd.h>
#include <signal.h>
#include <X11/Xlib.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
/* ncurses */
#include <form.h>
/* pam */
@ -204,6 +206,26 @@ const char* de_command, enum deserv_t display_server)
return 1;
}
/* Initialise user groups */
/* Get pwd structure for the user to get his group id */
struct passwd* pw = getpwnam(username);
if(!pw)
{
error_print(strerror(errno));
pam_end(login_handle, pam_result);
return 1;
}
int grp_result = initgroups(username, pw->pw_gid);
if(grp_result == -1)
{
error_print(strerror(errno));
pam_end(login_handle, pam_result);
return 1;
}
/* pam_setcred and error handling */
pam_result = pam_setcred(login_handle, PAM_ESTABLISH_CRED);

View File

@ -53,7 +53,7 @@ void init_form(struct ncform* form, char** list, int max_de, int* de_id)
{
if(fgets(line, sizeof(line), file))
{
snprintf(user, sizeof(file), "%s", line);
strcpy(user, line);
}
if(fgets(line, sizeof(line), file))