From: David Carlier <[email protected]>

da_log_level() and da_cache_size() were missing a return -1 on error,
causing fall-through to the normal return 0 path when invalid values
were provided.

This should be backported to lower branches.
---
 addons/deviceatlas/da.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/addons/deviceatlas/da.c b/addons/deviceatlas/da.c
index 417fbf2f3..e9fb91d1a 100644
--- a/addons/deviceatlas/da.c
+++ b/addons/deviceatlas/da.c
@@ -73,6 +73,7 @@ static int da_log_level(char **args, int section_type, struct 
proxy *curpx,
        loglevel = atol(args[1]);
        if (loglevel < 0 || loglevel > 3) {
                memprintf(err, "deviceatlas log level : expects a log level 
between 0 and 3, %s given.\n", args[1]);
+               return -1;
        } else {
                global_deviceatlas.loglevel = (da_severity_t)loglevel;
        }
@@ -119,6 +120,7 @@ static int da_cache_size(char **args, int section_type, 
struct proxy *curpx,
     cachesize = atol(args[1]);
     if (cachesize < 0 || cachesize > DA_CACHE_MAX) {
         memprintf(err, "deviceatlas cache size : expects a cache size between 
0 and %d, %s given.\n", DA_CACHE_MAX, args[1]);
+       return -1;
     } else {
 #ifdef APINOCACHE
         fprintf(stdout, "deviceatlas cache size : no-op, its support is 
disabled.\n");
-- 
2.51.0



Reply via email to