/* * uid.c * Created by: Erik Kay * Description: new uid / euid data structures and security * Modification: * 11-1-92 - Erik Kay - initial creation */ #include <stdio.h> /* to get NULL */ #ifdef __386BSD__ #include <string.h> #endif #include "config.h" #include "lint.h" #include "uid.h" userid_t *uids = NULL; userid_t *backbone_uid; userid_t *root_uid; userid_t *find_uid (name) char *name; { userid_t *uid = uids; while (uid) { if (!strcmp(name, uid->name)) return uid; uid = uid->next; } return NULL; } void insert_uid (new_uid) userid_t *new_uid; { userid_t *uid = uids; if (uid) { while (uid->next) { uid = uid->next; } uid->next = new_uid; } else uids = new_uid; return; } userid_t *add_uid (name) char *name; { userid_t *uid; if ((uid = find_uid(name))) return uid; uid = (userid_t *)DMALLOC(sizeof(userid_t), 119, "add_uid: 1"); uid->next = NULL; uid->name = (char *)DMALLOC(strlen(name)+1, 120, "add_uid: 2"); strcpy(uid->name, name); insert_uid(uid); return uid; } userid_t *set_root_uid (name) char *name; { userid_t *uid; uid = add_uid(name); if (uid) root_uid = uid; return uid; } userid_t *set_backbone_uid (name) char *name; { userid_t *uid; uid = add_uid(name); if (uid) backbone_uid = uid; return uid; }