Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 477666 | Differences between
and this patch

Collapse All | Expand All

(-)b/src/vdpau_wrapper.c (-12 / +10 lines)
Lines 117-141 Link Here
117
        vdpau_driver = "nvidia";
117
        vdpau_driver = "nvidia";
118
    }
118
    }
119
119
120
    _vdp_driver_dll = NULL;
120
    if (snprintf(vdpau_driver_lib, sizeof(vdpau_driver_lib), DRIVER_LIB_FORMAT,
121
    if (snprintf(vdpau_driver_lib, sizeof(vdpau_driver_lib), DRIVER_LIB_FORMAT,
121
                 VDPAU_MODULEDIR "/", vdpau_driver, ".1") >=
122
                 VDPAU_MODULEDIR "/", vdpau_driver, ".1") >=
122
            sizeof(vdpau_driver_lib)) {
123
            sizeof(vdpau_driver_lib)) {
123
        fprintf(stderr, "Failed to construct driver path: path too long\n");
124
        fprintf(stderr, "Failed to construct driver path: path too long\n");
124
        if (vdpau_driver_dri2) {
125
    } else {
125
            XFree(vdpau_driver_dri2);
126
        _vdp_driver_dll = dlopen(vdpau_driver_lib, RTLD_NOW | RTLD_GLOBAL);
126
            vdpau_driver_dri2 = NULL;
127
        }
128
        _VDP_ERROR_BREAKPOINT();
129
        return VDP_STATUS_NO_IMPLEMENTATION;
130
    }
127
    }
131
128
132
    _vdp_driver_dll = dlopen(vdpau_driver_lib, RTLD_NOW | RTLD_GLOBAL);
133
    if (!_vdp_driver_dll) {
129
    if (!_vdp_driver_dll) {
134
        /* Try again using the old path, which is guaranteed to fit in PATH_MAX
130
        /* Try again using the old path. */
135
         * if the complete path fit above. */
131
        if (snprintf(vdpau_driver_lib, sizeof(vdpau_driver_lib), DRIVER_LIB_FORMAT,
136
        snprintf(vdpau_driver_lib, sizeof(vdpau_driver_lib), DRIVER_LIB_FORMAT,
132
                     "", vdpau_driver, "") >= sizeof(vdpau_driver_lib)) {
137
                 "", vdpau_driver, "");
133
            fprintf(stderr, "Failed to construct driver path: path too long\n");
138
        _vdp_driver_dll = dlopen(vdpau_driver_lib, RTLD_NOW | RTLD_GLOBAL);
134
        } else {
135
            _vdp_driver_dll = dlopen(vdpau_driver_lib, RTLD_NOW | RTLD_GLOBAL);
136
        }
139
    }
137
    }
140
138
141
    if (vdpau_driver_dri2) {
139
    if (vdpau_driver_dri2) {

Return to bug 477666