The (1) otrlbase64otrdecode function in src/b64.c; (2) otrlprotodatareadflags and (3) otrlprotoacceptdata functions in src/proto.c; and (4) decode function in toolkit/parse.c in libotr before 3.2.1 allocates a zero-length buffer when decoding a base64 string, which allows remote attackers to cause a denial of service (application crash) via a message with the value "?OTR:===.", which triggers a heap-based buffer overflow.