Эх сурвалжийг харах

Fix receiving of incorrect queries in write_single and mask_write_register

Thank you very much James Nutaro.
Stéphane Raimbault 11 жил өмнө
parent
commit
2c132b0406
1 өөрчлөгдсөн 2 нэмэгдсэн , 2 устгасан
  1. 2 2
      src/modbus.c

+ 2 - 2
src/modbus.c

@@ -1223,7 +1223,7 @@ static int write_single(modbus_t *ctx, int function, int addr, int value)
     rc = send_msg(ctx, req, req_length);
     rc = send_msg(ctx, req, req_length);
     if (rc > 0) {
     if (rc > 0) {
         /* Used by write_bit and write_register */
         /* Used by write_bit and write_register */
-        uint8_t rsp[_MIN_REQ_LENGTH];
+        uint8_t rsp[MAX_MESSAGE_LENGTH];
 
 
         rc = _modbus_receive_msg(ctx, rsp, MSG_CONFIRMATION);
         rc = _modbus_receive_msg(ctx, rsp, MSG_CONFIRMATION);
         if (rc == -1)
         if (rc == -1)
@@ -1389,7 +1389,7 @@ int modbus_mask_write_register(modbus_t *ctx, int addr, uint16_t and_mask, uint1
     rc = send_msg(ctx, req, req_length);
     rc = send_msg(ctx, req, req_length);
     if (rc > 0) {
     if (rc > 0) {
         /* Used by write_bit and write_register */
         /* Used by write_bit and write_register */
-        uint8_t rsp[_MIN_REQ_LENGTH];
+        uint8_t rsp[MAX_MESSAGE_LENGTH];
 
 
         rc = _modbus_receive_msg(ctx, rsp, MSG_CONFIRMATION);
         rc = _modbus_receive_msg(ctx, rsp, MSG_CONFIRMATION);
         if (rc == -1)
         if (rc == -1)