nvidia fix

This commit is contained in:
netblue30 2016-10-08 08:33:42 -04:00
parent 1db14e970d
commit 40ed53c20b
4 changed files with 28 additions and 25 deletions

View file

@ -457,8 +457,7 @@ char *expand_home(const char *path, const char* homedir);
const char *gnu_basename(const char *path);
uid_t pid_get_uid(pid_t pid);
void invalid_filename(const char *fname);
uid_t get_tty_gid(void);
uid_t get_audio_gid(void);
uid_t get_group_id(const char *group);
int remove_directory(const char *path);
void flush_stdin(void);

View file

@ -225,7 +225,7 @@ void fs_private_dev(void){
// mount /dev/pts
gid_t ttygid = get_tty_gid();
gid_t ttygid = get_group_id("tty");
char *data;
if (asprintf(&data, "newinstance,gid=%d,mode=620,ptmxmode=0666", (int) ttygid) == -1)
errExit("asprintf");

View file

@ -2555,16 +2555,31 @@ int main(int argc, char **argv) {
ptr += strlen(ptr);
// add tty group
gid_t ttygid = get_tty_gid();
if (ttygid) {
sprintf(ptr, "%d %d 1\n", ttygid, ttygid);
gid_t g = get_group_id("tty");
if (g) {
sprintf(ptr, "%d %d 1\n", g, g);
ptr += strlen(ptr);
}
// add audio group
gid_t audiogid = get_audio_gid();
if (ttygid) {
sprintf(ptr, "%d %d 1\n", audiogid, audiogid);
g = get_group_id("audio");
if (g) {
sprintf(ptr, "%d %d 1\n", g, g);
ptr += strlen(ptr);
}
// add video group
g = get_group_id("video");
if (g) {
sprintf(ptr, "%d %d 1\n", g, g);
ptr += strlen(ptr);
}
// add games group
g = get_group_id("games");
if (g) {
sprintf(ptr, "%d %d 1\n", g, g);
ptr += strlen(ptr);
}
EUID_ROOT();

View file

@ -649,25 +649,14 @@ void invalid_filename(const char *fname) {
}
uid_t get_tty_gid(void) {
uid_t get_group_id(const char *group) {
// find tty group id
gid_t ttygid = 0;
struct group *g = getgrnam("tty");
gid_t gid = 0;
struct group *g = getgrnam(group);
if (g)
ttygid = g->gr_gid;
gid = g->gr_gid;
return ttygid;
}
uid_t get_audio_gid(void) {
// find tty group id
gid_t audiogid = 0;
struct group *g = getgrnam("audio");
if (g)
audiogid = g->gr_gid;
return audiogid;
return gid;
}