When attempting to switch runtime permissions over to
the correct group specified for the vty group, if the
user specified to run as does not have that vty group
then do warn about the issue and stop running
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reported-by: Thomas Martin <tmartincpp@gmail.com>
struct group *grentry = NULL;
gid_t groups[NGROUPS_MAX];
int i, ngroups = 0;
+ int found = 0;
if (!zprivs)
{
for ( i = 0; i < ngroups; i++ )
if ( groups[i] == zprivs_state.vtygrp )
- break;
+ {
+ found++;
+ break;
+ }
+ if (!found)
+ {
+ fprintf (stderr, "privs_init: user(%s) is not part of vty group specified(%s)\n",
+ zprivs->user, zprivs->vty_group);
+ exit (1);
+ }
if ( i >= ngroups && ngroups < (int) ZEBRA_NUM_OF(groups) )
{
groups[i] = zprivs_state.vtygrp;