[IRCServices] ircservices-5.0.57 convert-db utility crashes when converting from anope db.

Andrew Church achurch at achurch.org
Tue Jun 20 02:06:52 PDT 2006


>sheik@*****  [~/services2/lib]# ./convert-db -v +anope /home/sheik/services
>Loading nick.db...
>Loading chan.db...
>Loading oper.db...
>Loading exception.db...
>Loading news.db...
>Data files successfully loaded.
>Checking data integrity...
>Segmentation fault

     Can you try applying the patch below and tell me if it solves your
problem?

  --Andrew Church
    achurch at achurch.org
    http://achurch.org/

---------------------------------------------------------------------------

Index: tools/convert-db.c
===================================================================
RCS file: /var/local/cvsroot/ircservices/tools/convert-db.c,v
retrieving revision 2.30.2.6
diff -u -r2.30.2.6 convert-db.c
--- tools/convert-db.c	20 Jan 2006 08:33:59 -0000	2.30.2.6
+++ tools/convert-db.c	19 Jun 2006 17:03:51 -0000
@@ -591,10 +591,15 @@
 
 	/* Make sure all access entries have non-empty user and host parts. */
 	ARRAY_FOREACH (i, ngi->access) {
-	    s = strchr(ngi->access[i], '@');
-	    if (!s || s==ngi->access[i] || !s[1]) {
-		fprintf(stderr, "Access entry %d for nickgroup %u isn't a"
-			" valid user at host mask, deleting.\n", i, ngi->id);
+	    if (!ngi->access[i]
+	     || !(s = strchr(ngi->access[i], '@'))
+	     || s == ngi->access[i]
+	     || !s[1]
+	    ) {
+		fprintf(stderr, "Access entry %d for nickgroup %u %s,"
+			" deleting.\n", i, ngi->id,
+			!ngi->access ? "is empty"
+			             : "isn't a valid user at host mask");
 		ARRAY_REMOVE(ngi->access, i);
 		i--;
 	    }