[Mesa-dev] [PATCH 08/17] loader: Fix compiler warnings about truncating the PCI ID path.
Ian Romanick
idr at freedesktop.org
Mon Feb 12 21:56:30 UTC 2018
On 02/10/2018 08:33 AM, Eric Anholt wrote:
> 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).
>
> Cc: Eric Engestrom <eric.engestrom at imgtec.com>
> ---
> src/loader/loader.c | 15 +++++++--------
> 1 file changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/src/loader/loader.c b/src/loader/loader.c
> index 913b3dcac032..92b4c5204b19 100644
> --- a/src/loader/loader.c
> +++ b/src/loader/loader.c
> @@ -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;
Won't tag be NULL on failure? Then you could just
asprintf(&tag, "pci-%04x_%02x_%02x_%1u",
device->businfo.pci->domain,
device->businfo.pci->bus,
device->businfo.pci->dev,
device->businfo.pci->func);
return tag;
> + }
> }
> return tag;
> }
>
More information about the mesa-dev
mailing list