diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c index a2bde2202..e94b8f1c6 100644 --- a/hw/xfree86/common/xf86sbusBus.c +++ b/hw/xfree86/common/xf86sbusBus.c @@ -740,6 +740,7 @@ void xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, GDevRec * GDev) { char *promPath = NULL; + char *tmp; sBus = (sbusDevicePtr) busData; GDev->identifier = sBus->descr; @@ -748,10 +749,11 @@ xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, GDevRec * GDev) sparcPromClose(); } if (promPath) { - XNFasprintf(&GDev->busID, "SBUS:%s", promPath); + XNFasprintf(&tmp, "SBUS:%s", promPath); free(promPath); } else { - XNFasprintf(&GDev->busID, "SBUS:fb%d", sBus->fbNum); + XNFasprintf(&tmp, "SBUS:fb%d", sBus->fbNum); } + GDev->busID = tmp; }