Просмотр исходного кода

bproto: don't assign an unknown uint32_t to int, this may be undefined behaviour if the uint32_t is too large for the int (which it can be).

ambrop7 15 лет назад
Родитель
Сommit
aa0aa09087

+ 2 - 2
bproto_generator/bproto_functions.php

@@ -512,7 +512,7 @@ EOD;
                 pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 if (!(left >= payload_len)) {
                     return 0;
                 }
@@ -690,7 +690,7 @@ EOD;
                 o->{$entry["name"]}_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->{$entry["name"]}_start + o->{$entry["name"]}_pos;
                 o->{$entry["name"]}_pos += payload_len;

+ 5 - 5
generated/bproto_addr.h

@@ -272,7 +272,7 @@ int addrParser_Init (addrParser *o, uint8_t *buf, int buf_len)
                 pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 if (!(left >= payload_len)) {
                     return 0;
                 }
@@ -410,7 +410,7 @@ int addrParser_Gettype (addrParser *o, uint8_t *v)
                 o->type_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->type_start + o->type_pos;
                 o->type_pos += payload_len;
@@ -482,7 +482,7 @@ int addrParser_Getip_port (addrParser *o, uint8_t **data)
                 o->ip_port_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->ip_port_start + o->ip_port_pos;
                 o->ip_port_pos += payload_len;
@@ -559,7 +559,7 @@ int addrParser_Getipv4_addr (addrParser *o, uint8_t **data)
                 o->ipv4_addr_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->ipv4_addr_start + o->ipv4_addr_pos;
                 o->ipv4_addr_pos += payload_len;
@@ -636,7 +636,7 @@ int addrParser_Getipv6_addr (addrParser *o, uint8_t **data)
                 o->ipv6_addr_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->ipv6_addr_start + o->ipv6_addr_pos;
                 o->ipv6_addr_pos += payload_len;

+ 8 - 8
generated/bproto_bproto_test.h

@@ -388,7 +388,7 @@ int msg1Parser_Init (msg1Parser *o, uint8_t *buf, int buf_len)
                 pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 if (!(left >= payload_len)) {
                     return 0;
                 }
@@ -522,7 +522,7 @@ int msg1Parser_Geta (msg1Parser *o, uint16_t *v)
                 o->a_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->a_start + o->a_pos;
                 o->a_pos += payload_len;
@@ -599,7 +599,7 @@ int msg1Parser_Getb (msg1Parser *o, uint32_t *v)
                 o->b_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->b_start + o->b_pos;
                 o->b_pos += payload_len;
@@ -676,7 +676,7 @@ int msg1Parser_Getc (msg1Parser *o, uint64_t *v)
                 o->c_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->c_start + o->c_pos;
                 o->c_pos += payload_len;
@@ -753,7 +753,7 @@ int msg1Parser_Getd (msg1Parser *o, uint16_t *v)
                 o->d_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->d_start + o->d_pos;
                 o->d_pos += payload_len;
@@ -830,7 +830,7 @@ int msg1Parser_Gete (msg1Parser *o, uint8_t *v)
                 o->e_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->e_start + o->e_pos;
                 o->e_pos += payload_len;
@@ -902,7 +902,7 @@ int msg1Parser_Getf (msg1Parser *o, uint8_t **data, int *data_len)
                 o->f_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->f_start + o->f_pos;
                 o->f_pos += payload_len;
@@ -980,7 +980,7 @@ int msg1Parser_Getg (msg1Parser *o, uint8_t **data)
                 o->g_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->g_start + o->g_pos;
                 o->g_pos += payload_len;

+ 16 - 16
generated/bproto_msgproto.h

@@ -200,7 +200,7 @@ int msgParser_Init (msgParser *o, uint8_t *buf, int buf_len)
                 pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 if (!(left >= payload_len)) {
                     return 0;
                 }
@@ -299,7 +299,7 @@ int msgParser_Gettype (msgParser *o, uint16_t *v)
                 o->type_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->type_start + o->type_pos;
                 o->type_pos += payload_len;
@@ -371,7 +371,7 @@ int msgParser_Getpayload (msgParser *o, uint8_t **data, int *data_len)
                 o->payload_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->payload_start + o->payload_pos;
                 o->payload_pos += payload_len;
@@ -627,7 +627,7 @@ int msg_youconnectParser_Init (msg_youconnectParser *o, uint8_t *buf, int buf_le
                 pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 if (!(left >= payload_len)) {
                     return 0;
                 }
@@ -736,7 +736,7 @@ int msg_youconnectParser_Getaddr (msg_youconnectParser *o, uint8_t **data, int *
                 o->addr_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->addr_start + o->addr_pos;
                 o->addr_pos += payload_len;
@@ -814,7 +814,7 @@ int msg_youconnectParser_Getkey (msg_youconnectParser *o, uint8_t **data, int *d
                 o->key_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->key_start + o->key_pos;
                 o->key_pos += payload_len;
@@ -897,7 +897,7 @@ int msg_youconnectParser_Getpassword (msg_youconnectParser *o, uint64_t *v)
                 o->password_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->password_start + o->password_pos;
                 o->password_pos += payload_len;
@@ -1109,7 +1109,7 @@ int msg_youconnect_addrParser_Init (msg_youconnect_addrParser *o, uint8_t *buf,
                 pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 if (!(left >= payload_len)) {
                     return 0;
                 }
@@ -1213,7 +1213,7 @@ int msg_youconnect_addrParser_Getname (msg_youconnect_addrParser *o, uint8_t **d
                 o->name_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->name_start + o->name_pos;
                 o->name_pos += payload_len;
@@ -1291,7 +1291,7 @@ int msg_youconnect_addrParser_Getaddr (msg_youconnect_addrParser *o, uint8_t **d
                 o->addr_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->addr_start + o->addr_pos;
                 o->addr_pos += payload_len;
@@ -1547,7 +1547,7 @@ int msg_seedParser_Init (msg_seedParser *o, uint8_t *buf, int buf_len)
                 pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 if (!(left >= payload_len)) {
                     return 0;
                 }
@@ -1661,7 +1661,7 @@ int msg_seedParser_Getseed_id (msg_seedParser *o, uint16_t *v)
                 o->seed_id_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->seed_id_start + o->seed_id_pos;
                 o->seed_id_pos += payload_len;
@@ -1733,7 +1733,7 @@ int msg_seedParser_Getkey (msg_seedParser *o, uint8_t **data, int *data_len)
                 o->key_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->key_start + o->key_pos;
                 o->key_pos += payload_len;
@@ -1811,7 +1811,7 @@ int msg_seedParser_Getiv (msg_seedParser *o, uint8_t **data, int *data_len)
                 o->iv_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->iv_start + o->iv_pos;
                 o->iv_pos += payload_len;
@@ -1995,7 +1995,7 @@ int msg_confirmseedParser_Init (msg_confirmseedParser *o, uint8_t *buf, int buf_
                 pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 if (!(left >= payload_len)) {
                     return 0;
                 }
@@ -2079,7 +2079,7 @@ int msg_confirmseedParser_Getseed_id (msg_confirmseedParser *o, uint16_t *v)
                 o->seed_id_pos += sizeof(struct BProto_data_header_s);
                 left -= sizeof(struct BProto_data_header_s);
 
-                int payload_len = ltoh32(val->len);
+                uint32_t payload_len = ltoh32(val->len);
                 ASSERT(left >= payload_len)
                 uint8_t *payload = o->buf + o->seed_id_start + o->seed_id_pos;
                 o->seed_id_pos += payload_len;