BUILD: stick-table: fix build error on 32-bit platforms

Commit 9b2717e7b ("MINOR: stktable: use {show,set,clear} table with ptr")
stores a pointer in a long long (64bit), which fails the cas to void* on
32-bit platforms:

  src/stick_table.c: In function 'table_process_entry_per_ptr':
  src/stick_table.c:5136:37: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
   5136 |         ts = stktable_lookup_ptr(t, (void *)ptr);

On all our supported platforms, longs and pointers are of the same size,
so let's just turn this to a ulong instead.
This commit is contained in:
Willy Tarreau 2024-01-21 08:21:35 +01:00
parent 6e5aa16145
commit cdc993b19e

View File

@ -5121,7 +5121,7 @@ static int table_process_entry_per_ptr(struct appctx *appctx, char **args)
{
struct show_table_ctx *ctx = appctx->svcctx;
struct stktable *t = ctx->target;
long long int ptr;
ulong ptr;
char *error;
struct stksess *ts;
@ -5129,7 +5129,7 @@ static int table_process_entry_per_ptr(struct appctx *appctx, char **args)
return cli_err(appctx, "Pointer expected (0xffff notation)\n");
/* Convert argument to integer value */
ptr = strtoll(args[4], &error, 16);
ptr = strtoul(args[4], &error, 16);
if (*error != '\0')
return cli_err(appctx, "Malformed ptr.\n");