rem: tail = (struct userid *) xmalloc (sizeof (struct userid));
add: tail = xmalloc (sizeof (struct userid));
context: getuidbyname (const char *user){  register struct userid *tail;  struct passwd *pwent;  for (tail = user_alist; tail; tail = tail->next)    /* Avoid a function call for the most common case.  */    if (*tail->name == *user && !strcmp (tail->name, user))      return &tail->id.u;  for (tail = nouser_alist; tail; tail = tail->next)    /* Avoid a function call for the most common case.  */    if (*tail->name == *user && !strcmp (tail->name, user))      return 0;  pwent = getpwnam (user);#ifdef __DJGPP__  /* We need to pretend to be the user USER, to make     pwd functions know about an arbitrary user name.  */  if (!pwent && strspn (user, digits) < strlen (user))    {      setenv ("USER", user, 1);      pwent = getpwnam (user);	/* now it will succeed */    }#endif  tail = (struct userid *) xmalloc (sizeof (struct userid));  tail->name = xstrdup (user);  /* Add to the head of the list, so most recently used is first.  */  if (pwent)    {      tail->id.u = pwent->pw_uid;      tail->next = user_alist;      user_alist = tail;      return &tail->id.u;    }  tail->next = nouser_alist;  nouser_alist = tail;  return 0;}