]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Fix an enum comparison that was blowing up jenkins.
authorGeorge Kadianakis <desnacked@riseup.net>
Thu, 21 May 2020 10:39:49 +0000 (13:39 +0300)
committerGeorge Kadianakis <desnacked@riseup.net>
Thu, 21 May 2020 10:39:49 +0000 (13:39 +0300)
The warning was:
    11:23:10 ../tor/src/feature/hs/hs_service.c: In function 'log_cant_upload_desc':
    11:23:10 ../tor/src/feature/hs/hs_service.c:3118:3: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits]
See #34254 for more info.

I guess this means that gcc assigned an unsigned type to the
`log_desc_upload_reason_t` enum and it warned if we compared it against 0...

For now I think it's simpler to remove that check instead of turning the enum
to a signed type, or trying to hack it some other way.

From what it seems, enum is up to the compiler on whether it's signed/unsigned:
     https://stackoverflow.com/questions/159034/are-c-enums-signed-or-unsigned

src/feature/hs/hs_service.c

index 5b8f661832339e52394ddcbdf561b6e3ee065cc1..bff0d11e4bd31910e18704c2c58aa2eae2842ad7 100644 (file)
@@ -3115,7 +3115,7 @@ log_cant_upload_desc(const hs_service_t *service,
    * control that value in the code flow but will be apparent during
    * development if a reason is added but LOG_DESC_UPLOAD_REASON_NUM_ is not
    * updated. */
-  if (BUG(reason > LOG_DESC_UPLOAD_REASON_MAX || reason < 0)) {
+  if (BUG(reason > LOG_DESC_UPLOAD_REASON_MAX)) {
     return;
   }