mid == 0 is a protocol error.

pull/1022/head
Roger A. Light 7 years ago
parent eefa7f7604
commit ca40255720

@ -49,6 +49,7 @@ int handle__pubackcomp(struct mosquitto *mosq, const char *type)
assert(mosq);
rc = packet__read_uint16(&mosq->in_packet, &mid);
if(rc) return rc;
if(mid == 0) return MOSQ_ERR_PROTOCOL;
if(mosq->protocol == mosq_p_mqtt5){
rc = property__read_all(PUBACK, &mosq->in_packet, &properties);

@ -67,6 +67,10 @@ int handle__publish(struct mosquitto *mosq)
message__cleanup(&message);
return rc;
}
if(mid == 0){
message__cleanup(&message);
return MOSQ_ERR_PROTOCOL;
}
message->msg.mid = (int)mid;
}

@ -44,6 +44,7 @@ int handle__pubrec(struct mosquitto *mosq)
assert(mosq);
rc = packet__read_uint16(&mosq->in_packet, &mid);
if(rc) return rc;
if(mid == 0) return MOSQ_ERR_PROTOCOL;
if(mosq->protocol == mosq_p_mqtt5){
rc = property__read_all(PUBREC, &mosq->in_packet, &properties);

@ -53,6 +53,7 @@ int handle__pubrel(struct mosquitto_db *db, struct mosquitto *mosq)
}
rc = packet__read_uint16(&mosq->in_packet, &mid);
if(rc) return rc;
if(mid == 0) return MOSQ_ERR_PROTOCOL;
if(mosq->protocol == mosq_p_mqtt5){
rc = property__read_all(PUBREL, &mosq->in_packet, &properties);

@ -49,6 +49,7 @@ int handle__suback(struct mosquitto *mosq)
#endif
rc = packet__read_uint16(&mosq->in_packet, &mid);
if(rc) return rc;
if(mid == 0) return MOSQ_ERR_PROTOCOL;
if(mosq->protocol == mosq_p_mqtt5){
rc = property__read_all(SUBACK, &mosq->in_packet, &properties);

@ -51,6 +51,7 @@ int handle__unsuback(struct mosquitto *mosq)
#endif
rc = packet__read_uint16(&mosq->in_packet, &mid);
if(rc) return rc;
if(mid == 0) return MOSQ_ERR_PROTOCOL;
if(mosq->protocol == mosq_p_mqtt5){
rc = property__read_all(UNSUBACK, &mosq->in_packet, &properties);

@ -131,6 +131,10 @@ int handle__publish(struct mosquitto_db *db, struct mosquitto *context)
mosquitto__free(topic);
return 1;
}
if(mid == 0){
mosquitto__free(topic);
return MOSQ_ERR_PROTOCOL;
}
}
if(context->protocol == mosq_p_mqtt5){

@ -50,6 +50,7 @@ int handle__subscribe(struct mosquitto_db *db, struct mosquitto *context)
}
}
if(packet__read_uint16(&context->in_packet, &mid)) return 1;
if(mid == 0) return MOSQ_ERR_PROTOCOL;
if(context->protocol == mosq_p_mqtt5){
rc = property__read_all(SUBSCRIBE, &context->in_packet, &properties);

@ -42,6 +42,7 @@ int handle__unsubscribe(struct mosquitto_db *db, struct mosquitto *context)
}
}
if(packet__read_uint16(&context->in_packet, &mid)) return 1;
if(mid == 0) return MOSQ_ERR_PROTOCOL;
if(context->protocol == mosq_p_mqtt5){
rc = property__read_all(UNSUBSCRIBE, &context->in_packet, &properties);

Loading…
Cancel
Save