mirror of
https://github.com/eclipse-mosquitto/mosquitto.git
synced 2026-08-18 01:48:32 +08:00
Fix outgoing maximum-packet-size limit check.
Closes #3503. Thanks to Julian Graf.
This commit is contained in:
@@ -14,6 +14,7 @@ Broker:
|
||||
mosquitto 1.5 or earlier is loaded. Closes #3439.
|
||||
- Limit auto_id_prefix to 50 characters. Closes #3440.
|
||||
- Fix max_connections not being honoured on websockets listeners. Closes #3455.
|
||||
- Fix outgoing maximum-packet-size limit check. Closes #3503.
|
||||
|
||||
Library:
|
||||
- Fix mosquitto_loop_start() leaving the mosq stuct in an invalid state if
|
||||
|
||||
+1
-1
@@ -215,7 +215,7 @@ int packet__check_oversize(struct mosquitto *mosq, uint32_t remaining_length)
|
||||
|
||||
if(mosq->maximum_packet_size == 0) return MOSQ_ERR_SUCCESS;
|
||||
|
||||
len = remaining_length + packet__varint_bytes(remaining_length);
|
||||
len = 1 + remaining_length + packet__varint_bytes(remaining_length);
|
||||
if(len > mosq->maximum_packet_size){
|
||||
return MOSQ_ERR_OVERSIZE_PACKET;
|
||||
}else{
|
||||
|
||||
@@ -17,11 +17,11 @@ subscribe_packet = mosq_test.gen_subscribe(mid, "test/topic", 1, proto_ver=5)
|
||||
suback_packet = mosq_test.gen_suback(mid, 1, proto_ver=5)
|
||||
|
||||
mid=1
|
||||
publish1_packet = mosq_test.gen_publish(topic="test/topic", mid=mid, qos=1, payload="12345678901234567890", proto_ver=5)
|
||||
publish1_packet = mosq_test.gen_publish(topic="test/topic", mid=mid, qos=1, payload="1234", proto_ver=5)
|
||||
puback1_packet = mosq_test.gen_puback(mid, proto_ver=5)
|
||||
|
||||
mid=2
|
||||
publish2_packet = mosq_test.gen_publish(topic="test/topic", mid=mid, qos=1, payload="7890", proto_ver=5)
|
||||
publish2_packet = mosq_test.gen_publish(topic="test/topic", mid=mid, qos=1, payload="789", proto_ver=5)
|
||||
puback2_packet = mosq_test.gen_puback(mid, proto_ver=5)
|
||||
|
||||
port = mosq_test.get_port()
|
||||
|
||||
@@ -17,13 +17,13 @@ subscribe_packet = mosq_test.gen_subscribe(mid, "test/topic", 2, proto_ver=5)
|
||||
suback_packet = mosq_test.gen_suback(mid, 2, proto_ver=5)
|
||||
|
||||
mid=1
|
||||
publish1_packet = mosq_test.gen_publish(topic="test/topic", mid=mid, qos=2, payload="12345678901234567890", proto_ver=5)
|
||||
publish1_packet = mosq_test.gen_publish(topic="test/topic", mid=mid, qos=2, payload="1234", proto_ver=5)
|
||||
pubrec1_packet = mosq_test.gen_pubrec(mid, proto_ver=5)
|
||||
pubrel1_packet = mosq_test.gen_pubrel(mid, proto_ver=5)
|
||||
pubcomp1_packet = mosq_test.gen_pubcomp(mid, proto_ver=5)
|
||||
|
||||
mid=2
|
||||
publish2_packet = mosq_test.gen_publish(topic="test/topic", mid=mid, qos=2, payload="7890", proto_ver=5)
|
||||
publish2_packet = mosq_test.gen_publish(topic="test/topic", mid=mid, qos=2, payload="789", proto_ver=5)
|
||||
pubrec2_packet = mosq_test.gen_pubrec(mid, proto_ver=5)
|
||||
pubrel2_packet = mosq_test.gen_pubrel(mid, proto_ver=5)
|
||||
pubcomp2_packet = mosq_test.gen_pubcomp(mid, proto_ver=5)
|
||||
|
||||
@@ -14,8 +14,8 @@ connect_packet = mosq_test.gen_connect("publish-qos0-test", keepalive=keepalive,
|
||||
props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_MAXIMUM_PACKET_SIZE, 30)
|
||||
connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5, properties=props)
|
||||
|
||||
bad_publish_packet = mosq_test.gen_publish("pub/test", qos=0, payload="0123456789012345678", proto_ver=5)
|
||||
publish_packet = mosq_test.gen_publish("pub/test", qos=0, payload="012345678901234567", proto_ver=5)
|
||||
bad_publish_packet = mosq_test.gen_publish("pub/test", qos=0, payload="123456789012345678", proto_ver=5)
|
||||
publish_packet = mosq_test.gen_publish("pub/test", qos=0, payload="12345678901234567", proto_ver=5)
|
||||
|
||||
disconnect_packet = mosq_test.gen_disconnect()
|
||||
|
||||
|
||||
@@ -24,12 +24,12 @@ void on_connect(struct mosquitto *mosq, void *obj, int rc)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
rc = mosquitto_publish(mosq, &sent_mid, "pub/test", strlen("0123456789012345678"), "0123456789012345678", 0, false);
|
||||
rc = mosquitto_publish(mosq, &sent_mid, "pub/test", strlen("123456789012345678"), "123456789012345678", 0, false);
|
||||
if(rc != MOSQ_ERR_OVERSIZE_PACKET){
|
||||
printf("Fail on publish 1\n");
|
||||
exit(1);
|
||||
}
|
||||
rc = mosquitto_publish(mosq, &sent_mid, "pub/test", strlen("012345678901234567"), "012345678901234567", 0, false);
|
||||
rc = mosquitto_publish(mosq, &sent_mid, "pub/test", strlen("12345678901234567"), "12345678901234567", 0, false);
|
||||
if(rc != MOSQ_ERR_SUCCESS){
|
||||
printf("Fail on publish 2\n");
|
||||
exit(1);
|
||||
|
||||
Reference in New Issue
Block a user