]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: Consistently `unsigned int` for bitfields
authorTim Duesterhus <tim@bastelstu.be>
Sat, 18 Jan 2020 00:32:49 +0000 (01:32 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 22 Jan 2020 06:28:39 +0000 (07:28 +0100)
Signed bitfields of size `1` hold the values `0` and `-1`, but are
usually assigned `1`, possibly leading to subtle bugs when the value
is explicitely compared against `1`.

include/types/listener.h
include/types/pattern.h
include/types/ssl_sock.h

index 1098b42ce637451ca292dcd0d7c2115245a7ee21..bcc57ae70afe8454fb97129d881b09309717b58a 100644 (file)
@@ -124,9 +124,9 @@ struct ssl_bind_conf {
        char *alpn_str;            /* ALPN protocol string */
        int alpn_len;              /* ALPN protocol string length */
 #endif
-       int verify:3;              /* verify method (set of SSL_VERIFY_* flags) */
-       int no_ca_names:1;         /* do not send ca names to clients (ca_file related) */
-       int early_data:1;          /* early data allowed */
+       unsigned int verify:3;     /* verify method (set of SSL_VERIFY_* flags) */
+       unsigned int no_ca_names:1;/* do not send ca names to clients (ca_file related) */
+       unsigned int early_data:1; /* early data allowed */
        char *ca_file;             /* CAfile to use on verify */
        char *crl_file;            /* CRLfile to use on verify */
        char *ciphers;             /* cipher suite to use if non-null */
index a0bb08e16b138e2e0062c01b9b9e51a7bb712ec9..a2d609ba0d7b42e2215913c32bc141cc38046646 100644 (file)
@@ -150,8 +150,8 @@ struct pattern {
                int i;                          /* integer value */
                struct {
                        signed long long min, max;
-                       int min_set :1;
-                       int max_set :1;
+                       unsigned int min_set:1;
+                       unsigned int max_set:1;
                } range; /* integer range */
                struct {
                        struct in_addr addr;
index ccc923508214b0715562515fcd4d520512a98d6e..009c6c6e1aa34ceabbf6610483cc4589164ed0a8 100644 (file)
@@ -36,8 +36,8 @@ struct pkey_info {
 struct sni_ctx {
        SSL_CTX *ctx;             /* context associated to the certificate */
        int order;                /* load order for the certificate */
-       uint8_t neg:1;              /* reject if match */
-       uint8_t wild:1;            /* wildcard sni */
+       unsigned int neg:1;       /* reject if match */
+       unsigned int wild:1;      /* wildcard sni */
        struct pkey_info kinfo;   /* pkey info */
        struct ssl_bind_conf *conf; /* ssl "bind" conf for the certificate */
        struct list by_ckch_inst; /* chained in ckch_inst's list of sni_ctx */
@@ -109,8 +109,8 @@ struct cert_key_and_chain {
  */
 struct ckch_store {
        struct cert_key_and_chain *ckch;
-       int multi:1; /* is it a multi-cert bundle ? */
-       int filters:1; /* one of the instances is using filters, TODO:remove this flag once filters are supported */
+       unsigned int multi:1;  /* is it a multi-cert bundle ? */
+       unsigned int filters:1;/* one of the instances is using filters, TODO:remove this flag once filters are supported */
        struct list ckch_inst; /* list of ckch_inst which uses this ckch_node */
        struct ebmb_node node;
        char path[0];