]> git.proxmox.com Git - mirror_frr.git/blob - debian/patches/80_vtysh__vtysh.c__privs.diff
Debian Packaging Files
[mirror_frr.git] / debian / patches / 80_vtysh__vtysh.c__privs.diff
1 Description: Fixes group permission. (line numbers adjusted for 0.99.22)
2
3 --- old/vtysh/vtysh.c.orig 2004-10-30 23:16:08.000000000 +0200
4 +++ new/vtysh/vtysh.c 2004-10-30 23:16:41.000000000 +0200
5 @@ -26,6 +26,8 @@
6 #include <sys/wait.h>
7 #include <sys/resource.h>
8 #include <sys/stat.h>
9 +#include <sys/types.h>
10 +#include <grp.h>
11
12 #include <readline/readline.h>
13 #include <readline/history.h>
14 @@ -1786,6 +1794,9 @@
15 FILE *fp;
16 char *integrate_sav = NULL;
17
18 + /* Setting file permissions */
19 + struct group *quagga_vty_group;
20 +
21 integrate_sav = malloc (strlen (integrate_default) +
22 strlen (CONF_BACKUP_EXT) + 1);
23 strcpy (integrate_sav, integrate_default);
24 @@ -1812,6 +1823,21 @@
25 vtysh_config_dump (fp);
26
27 fclose (fp);
28 +
29 + errno = 0;
30 + if ((quagga_vty_group = getgrnam(VTY_GROUP)) == NULL)
31 + {
32 + fprintf (stdout, "%% Can't get group %s: %s (%d)\n",
33 + VTY_GROUP, strerror(errno), errno);
34 + return CMD_WARNING;
35 + }
36 +
37 + if ((chown(integrate_default, -1, quagga_vty_group->gr_gid)) != 0)
38 + {
39 + fprintf (stdout,"%% Can't chown configuration file %s: %s (%d)\n",
40 + integrate_default, strerror(errno), errno);
41 + return CMD_WARNING;
42 + }
43
44 if (chmod (integrate_default, CONFIGFILE_MASK) != 0)
45 {