Doing "1UL << i" is wrong here, because the constant "1UL" is 32 bit
on 32 bit systems and we definitely need 64 bit quantities for the
attribute mask.
Fix this by using an uint64_t variable instead.
static void com_setatt_callback(__a_unused int fd, const struct osl_object *query)
{
char *p;
- uint64_t add_mask = 0, del_mask = 0;
+ uint64_t add_mask = 0, del_mask = 0, one = 1;
int ret;
size_t len;
struct osl_object obj;
if (ret < 0)
goto out;
if (c == '+')
- add_mask |= (1UL << *(unsigned char *)obj.data);
+ add_mask |= (one << *(unsigned char *)obj.data);
else
- del_mask |= (1UL << *(unsigned char *)obj.data);
+ del_mask |= (one << *(unsigned char *)obj.data);
}
ret = -E_ATTR_SYNTAX;
if (!add_mask && !del_mask)