commit 262d0522dea091b9065392563a5a2cd93e7fb17b
Author: Ian Goldberg <iang@cs.uwaterloo.ca>
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 <ch@bitfehler.net> 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':