xkb: Silence some compiler warnings
Of the form: ../xkb/XKBGAlloc.c: In function ‘SrvXkbAddGeomKeyAlias’: ../xkb/XKBGAlloc.c:591:13: warning: ‘strncpy’ specified bound 4 equals destination size [-Wstringop-truncation] strncpy(alias->real, realStr, XkbKeyNameLength); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is intentional; the code that reads from these fields never reads more than 4 bytes anyway. Rephrase things in terms of memcpy so that's clear. Obviously this is awful but in XKB awful is par. Signed-off-by: Adam Jackson <ajax@redhat.com> Acked-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
d13cd3862e
commit
83913de25d
|
@ -588,7 +588,8 @@ XkbAddGeomKeyAlias(XkbGeometryPtr geom, char *aliasStr, char *realStr)
|
||||||
i++, alias++) {
|
i++, alias++) {
|
||||||
if (strncmp(alias->alias, aliasStr, XkbKeyNameLength) == 0) {
|
if (strncmp(alias->alias, aliasStr, XkbKeyNameLength) == 0) {
|
||||||
memset(alias->real, 0, XkbKeyNameLength);
|
memset(alias->real, 0, XkbKeyNameLength);
|
||||||
strncpy(alias->real, realStr, XkbKeyNameLength);
|
memcpy(alias->real, realStr,
|
||||||
|
min(XkbKeyNameLength, strlen(realStr)));
|
||||||
return alias;
|
return alias;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -598,8 +599,8 @@ XkbAddGeomKeyAlias(XkbGeometryPtr geom, char *aliasStr, char *realStr)
|
||||||
}
|
}
|
||||||
alias = &geom->key_aliases[geom->num_key_aliases];
|
alias = &geom->key_aliases[geom->num_key_aliases];
|
||||||
memset(alias, 0, sizeof(XkbKeyAliasRec));
|
memset(alias, 0, sizeof(XkbKeyAliasRec));
|
||||||
strncpy(alias->alias, aliasStr, XkbKeyNameLength);
|
memcpy(alias->alias, aliasStr, min(XkbKeyNameLength, strlen(aliasStr)));
|
||||||
strncpy(alias->real, realStr, XkbKeyNameLength);
|
memcpy(alias->real, realStr, min(XkbKeyNameLength, strlen(realStr)));
|
||||||
geom->num_key_aliases++;
|
geom->num_key_aliases++;
|
||||||
return alias;
|
return alias;
|
||||||
}
|
}
|
||||||
|
@ -814,8 +815,8 @@ XkbAddGeomOverlayKey(XkbOverlayPtr overlay,
|
||||||
(_XkbAllocOverlayKeys(row, 1) != Success))
|
(_XkbAllocOverlayKeys(row, 1) != Success))
|
||||||
return NULL;
|
return NULL;
|
||||||
key = &row->keys[row->num_keys];
|
key = &row->keys[row->num_keys];
|
||||||
strncpy(key->under.name, under, XkbKeyNameLength);
|
memcpy(key->under.name, under, min(XkbKeyNameLength, strlen(under)));
|
||||||
strncpy(key->over.name, over, XkbKeyNameLength);
|
memcpy(key->over.name, over, min(XkbKeyNameLength, strlen(over)));
|
||||||
row->num_keys++;
|
row->num_keys++;
|
||||||
return key;
|
return key;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue