commit 262d0522dea091b9065392563a5a2cd93e7fb17b Author: Ian Goldberg Date: Sun Oct 13 08:43:49 2013 -0400 Avoid crash even if otrl_proto_query_bestversion is misused Return 0 instead of crashing from otrl_proto_query_bestversion if passed an illegal input. Thanks to Conrad Hoffmann for the report and the patch. diff --git a/src/proto.c b/src/proto.c index ce597a2..c2dd24a 100644 --- a/src/proto.c +++ b/src/proto.c @@ -294,13 +294,16 @@ unsigned int otrl_proto_query_bestversion(const char *otrquerymsg, otrtag = strstr(otrquerymsg, "?OTR"); + if (!otrtag) { + return 0; + } otrtag += 4; - if (otrtag && *otrtag == '?') { + if (*otrtag == '?') { query_versions = (1<<0); ++otrtag; } - if (otrtag && *otrtag == 'v') { + if (*otrtag == 'v') { for(++otrtag; *otrtag && *otrtag != '?'; ++otrtag) { switch(*otrtag) { case '2':