# HG changeset patch # User John "Elwin" Edwards # Date 1453593857 18000 # Node ID c2127bc986949abb02e833e095059568751fdf17 # Parent 67bcca6e3cb140b24997bdeb6b740b3601864bdd Update the dgamelaunch compatibility patch. The patch is now to be applied to dgamelaunch revision 6753fd6e. Maybe I should maintain my own Git branch. But this project already uses autotools and npm. I don't need any more software that's amazing in theory but painful to actually work with. diff -r 67bcca6e3cb1 -r c2127bc98694 dgl/rlgwebd-compat.patch --- a/dgl/rlgwebd-compat.patch Sat Jan 16 02:12:50 2016 +0000 +++ b/dgl/rlgwebd-compat.patch Sat Jan 23 19:04:17 2016 -0500 @@ -1,5 +1,5 @@ diff --git a/dgamelaunch.c b/dgamelaunch.c -index fbf6ef5..b52b545 100644 +index a52812d..6107851 100644 --- a/dgamelaunch.c +++ b/dgamelaunch.c @@ -1489,7 +1489,10 @@ int @@ -43,17 +43,21 @@ if (dowrite) writefile (0); -@@ -2053,6 +2076,8 @@ passwordgood (char *cpw) - { +@@ -2054,6 +2077,12 @@ passwordgood (char *cpw) + char *crypted; assert (me != NULL); -+ if (!strncmp (crypt (cpw, me->password), me->password, DGL_PASSWDLEN)) ++ crypted = crypt (cpw, me->password); ++ if (crypted == NULL) ++ return 0; ++ if (!strncmp (crypted, me->password, DGL_PASSWDLEN)) + return 1; - if (!strncmp (crypt (cpw, cpw), me->password, DGL_PASSWDLEN)) - return 1; - if (!strncmp (cpw, me->password, DGL_PASSWDLEN)) ++ + crypted = crypt (cpw, cpw); + if (crypted == NULL) + return 0; diff --git a/dgamelaunch.h b/dgamelaunch.h -index b9ce41c..ca5e11b 100644 +index e298adf..411c7c3 100644 --- a/dgamelaunch.h +++ b/dgamelaunch.h @@ -20,7 +20,7 @@ @@ -66,10 +70,10 @@ #define DGL_MAXWATCHCOLS 10 diff --git a/dgl-common.c b/dgl-common.c -index e5c80bc..fbc4eea 100644 +index 80560b5..94f7b69 100644 --- a/dgl-common.c +++ b/dgl-common.c -@@ -593,7 +593,7 @@ game_read_extra_info(struct dg_game *game, const char *extra_info_file) +@@ -608,7 +608,7 @@ game_read_extra_info(struct dg_game *game, const char *extra_info_file) struct dg_game ** populate_games (int xgame, int *l, struct dg_user *me) { @@ -78,7 +82,7 @@ DIR *pdir; struct dirent *pdirent; struct stat pstat; -@@ -631,13 +631,15 @@ populate_games (int xgame, int *l, struct dg_user *me) +@@ -646,13 +646,15 @@ populate_games (int xgame, int *l, struct dg_user *me) if (!inprog) continue; @@ -95,7 +99,7 @@ { char *ttrecdir = NULL; strncpy(playername, pdirent->d_name, DGL_PLAYERNAMELEN); -@@ -651,6 +653,9 @@ populate_games (int xgame, int *l, struct dg_user *me) +@@ -666,6 +668,9 @@ populate_games (int xgame, int *l, struct dg_user *me) graceful_exit(145); } replacestr++; @@ -105,7 +109,7 @@ ttrecdir = dgl_format_str(game, me, myconfig[game]->ttyrecdir, playername); if (!ttrecdir) continue; -@@ -673,6 +678,8 @@ populate_games (int xgame, int *l, struct dg_user *me) +@@ -688,6 +693,8 @@ populate_games (int xgame, int *l, struct dg_user *me) strlcpy (games[len]->name, pdirent->d_name, strlen (pdirent->d_name) + 1);