Changeset ccb13cfe in rtems


Ignore:
Timestamp:
Aug 9, 2001, 10:11:19 PM (20 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
3c6cc4a0
Parents:
b6a2d2fa
Message:

2001-08-09 Fernando-Ruiz Casas <correo@…>

  • libc/getgrent.c, libc/getpwent.c: the 'ls' and more related command previous failed after a chroot(). (unknown user & group)
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • c/src/exec/libcsupport/src/getgrent.c

    rb6a2d2fa rccb13cfe  
    2121#include <string.h>
    2222#include <limits.h>
     23
     24#include <rtems/libio_.h>
     25
    2326
    2427static struct group gr_group;    /* password structure */
     
    4851{
    4952  FILE *fp;
     53  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    5054
    5155  init_etc_passwd_group();
     56  rtems_current_user_env=&rtems_global_user_env; /* set root */
    5257
    5358  if ((fp = fopen ("/etc/group", "r")) == NULL) {
    5459    errno = EINVAL;
     60    rtems_current_user_env=aux; /* restore */
    5561    return -1;
    5662  }
     
    6773      fclose (fp);
    6874      *result = grp;
     75      rtems_current_user_env=aux; /* restore */
    6976      return 0;
    7077    }
     
    7279  fclose (fp);
    7380  errno = EINVAL;
     81  rtems_current_user_env=aux; /* restore */
    7482  return -1;
    7583}
     
    97105{
    98106  FILE *fp;
     107  rtems_user_env_t * aux=rtems_current_user_env; /* save */
     108
    99109
    100110  init_etc_passwd_group();
     111  rtems_current_user_env=&rtems_global_user_env; /* set root */
    101112
    102113  if ((fp = fopen ("/etc/group", "r")) == NULL) {
    103114    errno = EINVAL;
     115    rtems_current_user_env=aux; /* restore */
    104116    return -1;
    105117  }
     
    117129      fclose (fp);
    118130      *result = grp;
     131      rtems_current_user_env=aux; /* restore */
    119132      return 0;
    120133    }
     
    122135  fclose (fp);
    123136  errno = EINVAL;
     137  rtems_current_user_env=aux; /* restore */
    124138  return -1;
    125139}
     
    161175setgrent ()
    162176{
     177  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    163178  init_etc_passwd_group();
     179  rtems_current_user_env=&rtems_global_user_env; /* set root */
    164180
    165181  if (group_fp != NULL)
     
    167183
    168184  group_fp = fopen ("/etc/group", "r");
     185  rtems_current_user_env=aux; /* restore */
    169186}
    170187
  • c/src/exec/libcsupport/src/getpwent.c

    rb6a2d2fa rccb13cfe  
    2424#include <unistd.h>
    2525
     26#include <rtems/libio_.h>
     27
    2628static struct passwd pw_passwd;  /* password structure */
    2729static FILE *passwd_fp;
     
    5759    return;
    5860  etc_passwd_initted = 1;
    59  
     61
    6062  (void) mkdir( "/etc", 0777);
    6163
     
    8183
    8284  fprintf( fp, "root:x:0:root\n"
    83                "rtems:x:1:rtems\n" 
     85               "rtems:x:1:rtems\n"
    8486               "tty:x:2:tty\n" );
    8587
     
    9698{
    9799  FILE *fp;
     100  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    98101
    99102  init_etc_passwd_group();
     103  rtems_current_user_env=&rtems_global_user_env; /* set root */
    100104
    101105  if ((fp = fopen ("/etc/passwd", "r")) == NULL) {
    102106    errno = EINVAL;
     107    rtems_current_user_env=aux; /* restore */
    103108    return -1;
    104109  }
     
    119124      fclose (fp);
    120125      *result = pwd;
     126      rtems_current_user_env=aux; /* restore */
    121127      return 0;
    122128    }
     
    124130  fclose (fp);
    125131  errno = EINVAL;
     132    rtems_current_user_env=aux; /* restore */
    126133  return -1;
    127134}
     
    149156{
    150157  FILE *fp;
     158  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    151159
    152160  init_etc_passwd_group();
     161  rtems_current_user_env=&rtems_global_user_env; /* set root */
    153162
    154163  if ((fp = fopen ("/etc/passwd", "r")) == NULL) {
    155164    errno = EINVAL;
     165    rtems_current_user_env=aux; /* restore */
    156166    return -1;
    157167  }
     
    172182      fclose (fp);
    173183      *result = pwd;
     184      rtems_current_user_env=aux; /* restore */
    174185      return 0;
    175186    }
     
    177188  fclose (fp);
    178189  errno = EINVAL;
     190  rtems_current_user_env=aux; /* restore */
    179191  return -1;
    180192}
     
    219231void setpwent( void )
    220232{
     233  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    221234  init_etc_passwd_group();
     235  rtems_current_user_env=&rtems_global_user_env; /* set root */
    222236
    223237  if (passwd_fp != NULL)
     
    225239
    226240  passwd_fp = fopen ("/etc/passwd", "r");
     241  rtems_current_user_env=aux; /* restore */
    227242}
    228243
  • c/src/lib/ChangeLog

    rb6a2d2fa rccb13cfe  
     12001-08-09      Fernando-Ruiz Casas <correo@fernando-ruiz.com>
     2
     3        * libc/getgrent.c, libc/getpwent.c: the 'ls' and more related command
     4        previous failed after a chroot(). (unknown user & group)
     5
    162001-08-03      Joel Sherrill <joel@OARcorp.com>
    27
  • c/src/lib/libc/getgrent.c

    rb6a2d2fa rccb13cfe  
    2121#include <string.h>
    2222#include <limits.h>
     23
     24#include <rtems/libio_.h>
     25
    2326
    2427static struct group gr_group;    /* password structure */
     
    4851{
    4952  FILE *fp;
     53  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    5054
    5155  init_etc_passwd_group();
     56  rtems_current_user_env=&rtems_global_user_env; /* set root */
    5257
    5358  if ((fp = fopen ("/etc/group", "r")) == NULL) {
    5459    errno = EINVAL;
     60    rtems_current_user_env=aux; /* restore */
    5561    return -1;
    5662  }
     
    6773      fclose (fp);
    6874      *result = grp;
     75      rtems_current_user_env=aux; /* restore */
    6976      return 0;
    7077    }
     
    7279  fclose (fp);
    7380  errno = EINVAL;
     81  rtems_current_user_env=aux; /* restore */
    7482  return -1;
    7583}
     
    97105{
    98106  FILE *fp;
     107  rtems_user_env_t * aux=rtems_current_user_env; /* save */
     108
    99109
    100110  init_etc_passwd_group();
     111  rtems_current_user_env=&rtems_global_user_env; /* set root */
    101112
    102113  if ((fp = fopen ("/etc/group", "r")) == NULL) {
    103114    errno = EINVAL;
     115    rtems_current_user_env=aux; /* restore */
    104116    return -1;
    105117  }
     
    117129      fclose (fp);
    118130      *result = grp;
     131      rtems_current_user_env=aux; /* restore */
    119132      return 0;
    120133    }
     
    122135  fclose (fp);
    123136  errno = EINVAL;
     137  rtems_current_user_env=aux; /* restore */
    124138  return -1;
    125139}
     
    161175setgrent ()
    162176{
     177  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    163178  init_etc_passwd_group();
     179  rtems_current_user_env=&rtems_global_user_env; /* set root */
    164180
    165181  if (group_fp != NULL)
     
    167183
    168184  group_fp = fopen ("/etc/group", "r");
     185  rtems_current_user_env=aux; /* restore */
    169186}
    170187
  • c/src/lib/libc/getpwent.c

    rb6a2d2fa rccb13cfe  
    2424#include <unistd.h>
    2525
     26#include <rtems/libio_.h>
     27
    2628static struct passwd pw_passwd;  /* password structure */
    2729static FILE *passwd_fp;
     
    5759    return;
    5860  etc_passwd_initted = 1;
    59  
     61
    6062  (void) mkdir( "/etc", 0777);
    6163
     
    8183
    8284  fprintf( fp, "root:x:0:root\n"
    83                "rtems:x:1:rtems\n" 
     85               "rtems:x:1:rtems\n"
    8486               "tty:x:2:tty\n" );
    8587
     
    9698{
    9799  FILE *fp;
     100  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    98101
    99102  init_etc_passwd_group();
     103  rtems_current_user_env=&rtems_global_user_env; /* set root */
    100104
    101105  if ((fp = fopen ("/etc/passwd", "r")) == NULL) {
    102106    errno = EINVAL;
     107    rtems_current_user_env=aux; /* restore */
    103108    return -1;
    104109  }
     
    119124      fclose (fp);
    120125      *result = pwd;
     126      rtems_current_user_env=aux; /* restore */
    121127      return 0;
    122128    }
     
    124130  fclose (fp);
    125131  errno = EINVAL;
     132    rtems_current_user_env=aux; /* restore */
    126133  return -1;
    127134}
     
    149156{
    150157  FILE *fp;
     158  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    151159
    152160  init_etc_passwd_group();
     161  rtems_current_user_env=&rtems_global_user_env; /* set root */
    153162
    154163  if ((fp = fopen ("/etc/passwd", "r")) == NULL) {
    155164    errno = EINVAL;
     165    rtems_current_user_env=aux; /* restore */
    156166    return -1;
    157167  }
     
    172182      fclose (fp);
    173183      *result = pwd;
     184      rtems_current_user_env=aux; /* restore */
    174185      return 0;
    175186    }
     
    177188  fclose (fp);
    178189  errno = EINVAL;
     190  rtems_current_user_env=aux; /* restore */
    179191  return -1;
    180192}
     
    219231void setpwent( void )
    220232{
     233  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    221234  init_etc_passwd_group();
     235  rtems_current_user_env=&rtems_global_user_env; /* set root */
    222236
    223237  if (passwd_fp != NULL)
     
    225239
    226240  passwd_fp = fopen ("/etc/passwd", "r");
     241  rtems_current_user_env=aux; /* restore */
    227242}
    228243
  • cpukit/libcsupport/src/getgrent.c

    rb6a2d2fa rccb13cfe  
    2121#include <string.h>
    2222#include <limits.h>
     23
     24#include <rtems/libio_.h>
     25
    2326
    2427static struct group gr_group;    /* password structure */
     
    4851{
    4952  FILE *fp;
     53  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    5054
    5155  init_etc_passwd_group();
     56  rtems_current_user_env=&rtems_global_user_env; /* set root */
    5257
    5358  if ((fp = fopen ("/etc/group", "r")) == NULL) {
    5459    errno = EINVAL;
     60    rtems_current_user_env=aux; /* restore */
    5561    return -1;
    5662  }
     
    6773      fclose (fp);
    6874      *result = grp;
     75      rtems_current_user_env=aux; /* restore */
    6976      return 0;
    7077    }
     
    7279  fclose (fp);
    7380  errno = EINVAL;
     81  rtems_current_user_env=aux; /* restore */
    7482  return -1;
    7583}
     
    97105{
    98106  FILE *fp;
     107  rtems_user_env_t * aux=rtems_current_user_env; /* save */
     108
    99109
    100110  init_etc_passwd_group();
     111  rtems_current_user_env=&rtems_global_user_env; /* set root */
    101112
    102113  if ((fp = fopen ("/etc/group", "r")) == NULL) {
    103114    errno = EINVAL;
     115    rtems_current_user_env=aux; /* restore */
    104116    return -1;
    105117  }
     
    117129      fclose (fp);
    118130      *result = grp;
     131      rtems_current_user_env=aux; /* restore */
    119132      return 0;
    120133    }
     
    122135  fclose (fp);
    123136  errno = EINVAL;
     137  rtems_current_user_env=aux; /* restore */
    124138  return -1;
    125139}
     
    161175setgrent ()
    162176{
     177  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    163178  init_etc_passwd_group();
     179  rtems_current_user_env=&rtems_global_user_env; /* set root */
    164180
    165181  if (group_fp != NULL)
     
    167183
    168184  group_fp = fopen ("/etc/group", "r");
     185  rtems_current_user_env=aux; /* restore */
    169186}
    170187
  • cpukit/libcsupport/src/getpwent.c

    rb6a2d2fa rccb13cfe  
    2424#include <unistd.h>
    2525
     26#include <rtems/libio_.h>
     27
    2628static struct passwd pw_passwd;  /* password structure */
    2729static FILE *passwd_fp;
     
    5759    return;
    5860  etc_passwd_initted = 1;
    59  
     61
    6062  (void) mkdir( "/etc", 0777);
    6163
     
    8183
    8284  fprintf( fp, "root:x:0:root\n"
    83                "rtems:x:1:rtems\n" 
     85               "rtems:x:1:rtems\n"
    8486               "tty:x:2:tty\n" );
    8587
     
    9698{
    9799  FILE *fp;
     100  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    98101
    99102  init_etc_passwd_group();
     103  rtems_current_user_env=&rtems_global_user_env; /* set root */
    100104
    101105  if ((fp = fopen ("/etc/passwd", "r")) == NULL) {
    102106    errno = EINVAL;
     107    rtems_current_user_env=aux; /* restore */
    103108    return -1;
    104109  }
     
    119124      fclose (fp);
    120125      *result = pwd;
     126      rtems_current_user_env=aux; /* restore */
    121127      return 0;
    122128    }
     
    124130  fclose (fp);
    125131  errno = EINVAL;
     132    rtems_current_user_env=aux; /* restore */
    126133  return -1;
    127134}
     
    149156{
    150157  FILE *fp;
     158  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    151159
    152160  init_etc_passwd_group();
     161  rtems_current_user_env=&rtems_global_user_env; /* set root */
    153162
    154163  if ((fp = fopen ("/etc/passwd", "r")) == NULL) {
    155164    errno = EINVAL;
     165    rtems_current_user_env=aux; /* restore */
    156166    return -1;
    157167  }
     
    172182      fclose (fp);
    173183      *result = pwd;
     184      rtems_current_user_env=aux; /* restore */
    174185      return 0;
    175186    }
     
    177188  fclose (fp);
    178189  errno = EINVAL;
     190  rtems_current_user_env=aux; /* restore */
    179191  return -1;
    180192}
     
    219231void setpwent( void )
    220232{
     233  rtems_user_env_t * aux=rtems_current_user_env; /* save */
    221234  init_etc_passwd_group();
     235  rtems_current_user_env=&rtems_global_user_env; /* set root */
    222236
    223237  if (passwd_fp != NULL)
     
    225239
    226240  passwd_fp = fopen ("/etc/passwd", "r");
     241  rtems_current_user_env=aux; /* restore */
    227242}
    228243
Note: See TracChangeset for help on using the changeset viewer.