wmcbrine/MultiMail

MultiMail crashes on 0 byte mix file in BW packet

Closed this issue · 9 comments

MultiMail 0.52 crashes when opening a BW mail packet with a 0 byte .mix file. There are no messages in the downloaded Blue Wave mail packet, I wanted to open the packet and get a list of message areas that I could enter messages into.

This BW packet was downloaded from BBBS. I am not sure if MultiMail should open the packet with a 0 byte .mix file or if BBBS should be adding something to the .mix file so it is not empty.

Can someone tell me where the problem is?

Interesting. I don't think I've ever heard of a packet like that, but that's not to say it's necessarily wrong, per se; I'll have to look into that. Anyway, MultiMail deals with many kinds of broken packets. Can you email me this one?

I can confirm that the original Blue Wave reader doesn't crash on this packet, so it's valid by that standard, at least. I'll see what I can do.

Additionally, bwdev.doc says "The *.MIX file consists of zero or more records". So, that's clear-cut, and this is officially our bug.

OK, tentative fix committed now: 685f2a5

I've downloaded the MultiMail-master.zip file from https://github.com/wmcbrine/MultiMail using the download option on that page but I can't seem to compile mm here on this slackware64 14.2 box using gcc 5.5.0. I can compile 0.52. Below is what I see when I type make..

g++ -O2 -Wall -pedantic -c mmail/misc.cc
g++ -O2 -Wall -pedantic -c mmail/resource.cc
g++ -O2 -Wall -pedantic -c mmail/mmail.cc
g++ -O2 -Wall -pedantic -c mmail/driverl.cc
g++ -O2 -Wall -pedantic -c mmail/filelist.cc
g++ -O2 -Wall -pedantic -c mmail/area.cc
g++ -O2 -Wall -pedantic -c mmail/letter.cc
g++ -O2 -Wall -pedantic -c mmail/read.cc
g++ -O2 -Wall -pedantic -c mmail/compress.cc
g++ -O2 -Wall -pedantic -c mmail/pktbase.cc
g++ -O2 -Wall -pedantic -c mmail/bw.cc
g++ -O2 -Wall -pedantic -c mmail/qwk.cc
g++ -O2 -Wall -pedantic -c mmail/omen.cc
g++ -O2 -Wall -pedantic -c mmail/soup.cc
g++ -O2 -Wall -pedantic -c mmail/opx.cc
g++ -O2 -Wall -pedantic -I. -c interfac/mmcolor.cc
g++ -O2 -Wall -pedantic -I. -c interfac/mysystem.cc
g++ -O2 -Wall -pedantic -I. -c interfac/isoconv.cc
g++ -O2 -Wall -pedantic -I. -c interfac/basic.cc
g++ -O2 -Wall -pedantic -I. -c interfac/interfac.cc
g++ -O2 -Wall -pedantic -I. -c interfac/packet.cc
g++ -O2 -Wall -pedantic -I. -c interfac/arealist.cc
g++ -O2 -Wall -pedantic -I. -c interfac/letterl.cc
g++ -O2 -Wall -pedantic -I. -c interfac/letterw.cc
g++ -O2 -Wall -pedantic -I. -c interfac/lettpost.cc
g++ -O2 -Wall -pedantic -I. -c interfac/ansiview.cc
g++ -O2 -Wall -pedantic -I. -c interfac/addrbook.cc
g++ -O2 -Wall -pedantic -I. -c interfac/tagline.cc
g++ -O2 -Wall -pedantic -I. -c interfac/help.cc
g++ -O2 -Wall -pedantic -I. -c interfac/main.cc
g++ -o mm misc.o resource.o mmail.o driverl.o filelist.o area.o letter.o read.o compress.o pktbase.o bw.o qwk.o omen.o soup.o opx.o mmcolor.o mysystem.o isoconv.o basic.o interfac.o packet.o arealist.o letterl.o letterw.o lettpost.o ansiview.o addrbook.o tagline.o help.o main.o -lcurses
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-slackware-linux/5.5.0/../../../libstdc++.so when searching for -lstdc++
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-slackware-linux/5.5.0/../../../libstdc++.a when searching for -lstdc++
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/../../../../x86_64-slackware-linux/bin/ld: cannot find -lstdc++
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-slackware-linux/5.5.0/../../../libgcc_s.so when searching for -lgcc_s
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/../../../../x86_64-slackware-linux/bin/ld: cannot find -lgcc_s
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-slackware-linux/5.5.0/libgcc.a when searching for -lgcc
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/../../../../x86_64-slackware-linux/bin/ld: cannot find -lgcc
collect2: error: ld returned 1 exit status
Makefile:99: recipe for target 'mm' failed
make: *** [mm] Error 1

Eh, I'm not seeing any errors compiling mm there, it looks more like the system libraries are messed up somehow... are you sure you can build 0.52 now? If so, please post that for comparison.