[BACK]Return to dgamelaunch.c CVS log [TXT][DIR] Up to [contributed] / dgamelaunch-openbsd

Diff for /dgamelaunch-openbsd/dgamelaunch.c between version 1.2 and 1.8

version 1.2, 2021/03/09 14:48:42 version 1.8, 2021/04/02 11:02:20
Line 1 
Line 1 
 /* dgamelaunch.c  /* dgamelaunch.c
  *   *
    * (c)2021 RubĂ©n Llorente <porting@use.startmail.com>
  * (c)2001-4 M. Drew Streib <dtype@dtype.org>   * (c)2001-4 M. Drew Streib <dtype@dtype.org>
  * also parts (c) 2003-4 Joshua Kwan <joshk@triplehelix.org>,   * also parts (c) 2003-4 Joshua Kwan <joshk@triplehelix.org>,
  * Brett Carrington <brettcar@segvio.org>,   * Brett Carrington <brettcar@segvio.org>,
Line 1559  changepw (int dowrite)
Line 1560  changepw (int dowrite)
 #if defined(__OpenBSD__)  #if defined(__OpenBSD__)
   me->password = (char *) malloc((_PASSWORD_LEN+1)*sizeof(char));    me->password = (char *) malloc((_PASSWORD_LEN+1)*sizeof(char));
  if ( crypt_newhash(buf, "blowfish,12", me->password, _PASSWORD_LEN) != 0)   if ( crypt_newhash(buf, "blowfish,12", me->password, _PASSWORD_LEN) != 0)
   graceful_exit(1);    graceful_exit(300);
 #else  #else
   me->password = strdup (crypt (buf, buf));    me->password = strdup (crypt (buf, buf));
 #endif  #endif
Line 2162  readfile (int nolock)
Line 2163  readfile (int nolock)
       b = n;        b = n;
   
       /* pw field */        /* pw field */
         /* OpenBSD's implementation stores the password in hashed form.
          * crypt_checkpass takes care of validating the hashing so we
          * don't have to ensure the password field has a valid length */
   
   #if !defined(__OpenBSD__)
       while (*b != ':')        while (*b != ':')
         {          {
           users[f_num]->password[(b - n)] = *b;            users[f_num]->password[(b - n)] = *b;
Line 2171  readfile (int nolock)
Line 2177  readfile (int nolock)
             graceful_exit (102);              graceful_exit (102);
           }            }
         }          }
   #endif
   
       /* advance to next field */        /* advance to next field */
       n = b + 1;        n = b + 1;
Line 2864  main (int argc, char** argv)
Line 2871  main (int argc, char** argv)
           graceful_exit (3);            graceful_exit (3);
         }          }
   
   
   
       /* shed privs. this is done immediately after chroot. */        /* shed privs. this is done immediately after chroot. */
       if (setgroups (1, &globalconfig.shed_gid) == -1)        if (setgroups (1, &globalconfig.shed_gid) == -1)
         {          {
Line 2882  main (int argc, char** argv)
Line 2891  main (int argc, char** argv)
           perror ("setuid");            perror ("setuid");
           graceful_exit (6);            graceful_exit (6);
         }          }
   
   #if defined(__OpenBSD__)
         if ( pledge("stdio rpath wpath cpath fattr flock "
             "tty proc exec ps", NULL )==-1 )
           {
             perror("pledge");
             graceful_exit (301);
           }
   #endif
   
     }      }
   
   if (globalconfig.locale) {    if (globalconfig.locale) {

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.8

CVSweb