loader: Fix compiler warnings about truncating the PCI ID path.

My build was producing:

../src/loader/loader.c:121:67: warning: ‘%1u’ directive output may be truncated writing between 1 and 3 bytes into a region of size 2 [-Wformat-truncation=]

and we can avoid this careful calculation by just using asprintf (as we do
elsewhere in the file).

Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Eric Anholt 2018-02-10 10:45:18 +00:00
parent 1b313eedb5
commit 7075c084fc
1 changed files with 7 additions and 8 deletions

View File

@ -110,17 +110,16 @@ static char *loader_get_dri_config_device_id(void)
static char *drm_construct_id_path_tag(drmDevicePtr device)
{
#define PCI_ID_PATH_TAG_LENGTH sizeof("pci-xxxx_xx_xx_x")
char *tag = NULL;
if (device->bustype == DRM_BUS_PCI) {
tag = calloc(PCI_ID_PATH_TAG_LENGTH, sizeof(char));
if (tag == NULL)
return NULL;
snprintf(tag, PCI_ID_PATH_TAG_LENGTH, "pci-%04x_%02x_%02x_%1u",
device->businfo.pci->domain, device->businfo.pci->bus,
device->businfo.pci->dev, device->businfo.pci->func);
if (asprintf(&tag, "pci-%04x_%02x_%02x_%1u",
device->businfo.pci->domain,
device->businfo.pci->bus,
device->businfo.pci->dev,
device->businfo.pci->func) < 0) {
return NULL;
}
}
return tag;
}