diff --git a/ChangeLog b/ChangeLog index 0efa55eb..ff86d2a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -29,6 +29,9 @@ v0.37.4 10-May-2003 mbfido: Stone age packet support, see common.a. + Due to a bug in King-FIX v.1.26.Universal mbfido did crash. + Now it will log this and continue processing ticfiles with the + risk of sending files back to the owner of that faulty program. v0.37.3 09-Apr-2003 - 10-May-2003 diff --git a/mbfido/tic.c b/mbfido/tic.c index 9b4336ea..82a66b5b 100644 --- a/mbfido/tic.c +++ b/mbfido/tic.c @@ -168,8 +168,6 @@ int LoadTic(char *inb, char *tfn) char *Temp, *Temp2, *Buf, *Log = NULL, RealName[256]; int i, j, rc, bufsize, DescCnt = FALSE; fa_list *sbl = NULL; -// DIR *dp; -// struct dirent *de; if (CFG.slow_util && do_quiet) usleep(1); @@ -273,16 +271,21 @@ int LoadTic(char *inb, char *tfn) } else if (strncasecmp(Temp, "path ", 5) == 0) { strncpy(TIC.TicIn.Path[TIC.TicIn.TotPath], Temp+5, 80); - TIC.TicIn.TotPath++; - TIC.Aka.zone = atoi(strtok(Temp+5, ":")); - TIC.Aka.net = atoi(strtok(NULL, "/")); - TIC.Aka.node = atoi(strtok(NULL, "\0")); - for (i = 0; i < 40; i++) - if ((CFG.akavalid[i]) && (CFG.aka[i].zone == TIC.Aka.zone) && (CFG.aka[i].net == TIC.Aka.net) && - (CFG.aka[i].node == TIC.Aka.node) && (!CFG.aka[i].point)) { - TIC.TicIn.PathError = TRUE; - Syslog('+', "Aka %d: %s in path", i + 1, aka2str(CFG.aka[i])); - } + if (strchr(TIC.TicIn.Path[TIC.TicIn.TotPath], ':') && strchr(Temp+5, '/')) { + TIC.TicIn.TotPath++; + TIC.Aka.zone = atoi(strtok(Temp+5, ":")); + TIC.Aka.net = atoi(strtok(NULL, "/")); + TIC.Aka.node = atoi(strtok(NULL, "\0")); + for (i = 0; i < 40; i++) + if ((CFG.akavalid[i]) && (CFG.aka[i].zone == TIC.Aka.zone) && (CFG.aka[i].net == TIC.Aka.net) && + (CFG.aka[i].node == TIC.Aka.node) && (!CFG.aka[i].point)) { + TIC.TicIn.PathError = TRUE; + Syslog('+', "Aka %d: %s in path", i + 1, aka2str(CFG.aka[i])); + } + } else { + WriteError("No AKA in path: \"%s\"", printable(Temp, 0)); + WriteError("Report this to author of that program"); + } } else if (strncasecmp(Temp, "seenby ", 7) == 0) { fill_list(&sbl, Temp+7, NULL);