/[man-db]/man-db/src/mandb.c
ViewVC logotype

Diff of /man-db/src/mandb.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.28 by cjwatson, Mon Mar 3 22:04:57 2003 UTC revision 1.29 by cjwatson, Sun Apr 13 11:50:13 2003 UTC
# Line 155  static char *xtmpfile; Line 155  static char *xtmpfile;
155  #ifdef SECURE_MAN_UID  #ifdef SECURE_MAN_UID
156  extern uid_t ruid;  extern uid_t ruid;
157  extern uid_t euid;  extern uid_t euid;
 #ifdef MAN_DB_UPDATES  
 #  define DO_CHOWN  
 #endif /* MAN_DB_UPDATES */  
158  #endif /* SECURE_MAN_UID */  #endif /* SECURE_MAN_UID */
159    
160  extern char *optarg;  extern char *optarg;
# Line 277  static __inline__ void finish_up (void) Line 274  static __inline__ void finish_up (void)
274  #endif /* NDBM */  #endif /* NDBM */
275  }  }
276    
277  #ifdef DO_CHOWN  #ifdef SECURE_MAN_UID
278  /* chown() with error checking */  /* chown() with error checking */
279  static __inline__ void xchown (const char *path, uid_t owner, uid_t group)  static __inline__ void xchown (const char *path, uid_t owner, uid_t group)
280  {  {
# Line 301  static __inline__ void do_chown (uid_t u Line 298  static __inline__ void do_chown (uid_t u
298          xchown (xfile, uid, -1);          xchown (xfile, uid, -1);
299  #  endif /* NDBM */  #  endif /* NDBM */
300  }  }
301  #endif /* DO_CHOWN */  #endif /* SECURE_MAN_UID */
302    
303  /* Update a single file in an existing database. */  /* Update a single file in an existing database. */
304  static short update_one_file (const char *manpath, char *filename)  static short update_one_file (const char *manpath, char *filename)
# Line 431  int main (int argc, char *argv[]) Line 428  int main (int argc, char *argv[])
428          char *cwd = wd;          char *cwd = wd;
429  #endif /* __profile__ */  #endif /* __profile__ */
430    
431  #ifdef DO_CHOWN  #ifdef SECURE_MAN_UID
432          struct passwd *man_owner;          struct passwd *man_owner;
433  #endif  #endif
434    
# Line 508  int main (int argc, char *argv[]) Line 505  int main (int argc, char *argv[])
505          init_security ();          init_security ();
506  #endif /* SECURE_MAN_UID */  #endif /* SECURE_MAN_UID */
507    
508  #ifdef DO_CHOWN  #ifdef SECURE_MAN_UID
509          man_owner = getpwnam (MAN_OWNER);          man_owner = getpwnam (MAN_OWNER);
510          if (man_owner == NULL)          if (man_owner == NULL)
511                  error (FAIL, 0,                  error (FAIL, 0,
# Line 516  int main (int argc, char *argv[]) Line 513  int main (int argc, char *argv[])
513                         MAN_OWNER);                         MAN_OWNER);
514          if (!user && euid != 0 && euid != man_owner->pw_uid)          if (!user && euid != 0 && euid != man_owner->pw_uid)
515                  user = 1;                  user = 1;
516  #endif /* DO_CHOWN */  #endif /* SECURE_MAN_UID */
517    
518    
519          /* This is required for get_catpath(), regardless */          /* This is required for get_catpath(), regardless */
# Line 587  int main (int argc, char *argv[]) Line 584  int main (int argc, char *argv[])
584    
585                  if (!opt_test) {                  if (!opt_test) {
586                          finish_up ();                          finish_up ();
587  #ifdef DO_CHOWN  #ifdef SECURE_MAN_UID
588                          if (global_manpath && euid == 0)                          if (global_manpath && euid == 0)
589                                  do_chown (man_owner->pw_uid);                                  do_chown (man_owner->pw_uid);
590  #endif  #endif /* SECURE_MAN_UID */
591                  } else                  } else
592                          cleanup (NULL);                          cleanup (NULL);
593                  pop_cleanup ();                  pop_cleanup ();

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.29

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26