> Date: Sat, 18 Sep 2021 15:59:30 +0800 > From: Tao Liu <ltao@xxxxxxxxxx> > To: crash-utility@xxxxxxxxxx > Subject: [PATCH v4 2/4] Get the absolute value of > SYMNAME_HASH_INDEX > Message-ID: <20210918075932.132339-3-ltao@xxxxxxxxxx> > Content-Type: text/plain; charset="US-ASCII" > > SYMNAME_HASH_INDEX is used as the index of symname hash table. It will > be out of range if SYMNAME_HASH_INDEX is negative. Let's get its absolute > value to avoid such risk. > > Signed-off-by: Tao Liu <ltao@xxxxxxxxxx> > Reviewed-by: Philipp Rudo <prudo@xxxxxxxxxx> > --- > defs.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/defs.h b/defs.h > index c10ebff..3129f06 100644 > --- a/defs.h > +++ b/defs.h > @@ -2725,7 +2725,7 @@ struct downsized { > > #define SYMNAME_HASH (512) > #define SYMNAME_HASH_INDEX(name) \ > - ((name[0] ^ (name[strlen(name)-1] * name[strlen(name)/2])) % SYMNAME_HASH) > + (abs((name[0] ^ (name[strlen(name)-1] * name[strlen(name)/2])) % SYMNAME_HASH)) > I guess this may be caused by integer overflow, the expression uses integer calculations by default. Does the following change work for you? -#define SYMNAME_HASH (512) +#define SYMNAME_HASH (512ULL) Thanks. Lianbo > #define PATCH_KERNEL_SYMBOLS_START ((char *)(1)) > #define PATCH_KERNEL_SYMBOLS_STOP ((char *)(2)) > -- > 2.29.2 > -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/crash-utility