Closed Bug 1382286 Opened 7 years ago Closed 7 years ago

Crash on GLSL version 4.60

Categories

(Core :: Graphics: CanvasWebGL, defect)

defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: kvark, Assigned: jgilbert)

References

Details

(Keywords: sec-other)

This code crashes on version=460

static ShShaderOutput
ShaderOutput(gl::GLContext* gl)
{
    if (gl->IsGLES()) {
        return SH_ESSL_OUTPUT;
    } else {
        uint32_t version = gl->ShadingLanguageVersion();
        switch (version) {
        case 100: return SH_GLSL_COMPATIBILITY_OUTPUT;
        case 120: return SH_GLSL_COMPATIBILITY_OUTPUT;
        case 130: return SH_GLSL_130_OUTPUT;
        case 140: return SH_GLSL_140_OUTPUT;
        case 150: return SH_GLSL_150_CORE_OUTPUT;
        case 330: return SH_GLSL_330_CORE_OUTPUT;
        case 400: return SH_GLSL_400_CORE_OUTPUT;
        case 410: return SH_GLSL_410_CORE_OUTPUT;
        case 420: return SH_GLSL_420_CORE_OUTPUT;
        case 430: return SH_GLSL_430_CORE_OUTPUT;
        case 440: return SH_GLSL_440_CORE_OUTPUT;
        case 450: return SH_GLSL_450_CORE_OUTPUT;
        default:
            MOZ_CRASH("GFX: Unexpected GLSL version.");
        }
    }

    return SH_GLSL_COMPATIBILITY_OUTPUT;
}

 

If an implementation returns "4.60" for the GL_SHADING_LANGUAGE_VERSION string query it will cause the above switch to go to MOZ_CRASH.
kvark: Crashing seems harsh, but does it need to be treated as a hidden security bug?

Jeff: is 4.60 the only new version since this switch was added in 2015?
Group: core-security → gfx-core-security
Flags: needinfo?(kvark)
Flags: needinfo?(jmuizelaar)
Daniel,

GLSL 4.60 has not been announced yet, so I wanted this issue to be private. If there is a better way to mark it as such, please let me know.
Flags: needinfo?(kvark)
s/MOZ_CRASH(/MOZ_ASSERT(false, / is what we want for the time being.
Flags: needinfo?(jmuizelaar)
Assignee: nobody → jgilbert
Depends on: 1382358
Keywords: sec-other
If this bug becomes immediately public upon closing, please make sure to keep it open till July 31st.
Fixed by bug 1382358.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Group: gfx-core-security → core-security-release
(In reply to Dzmitry Malyshau [:kvark] from comment #4)
> If this bug becomes immediately public upon closing, please make sure to
> keep it open till July 31st.

I'm assuming that was July 31st 2017, when OpenGL 4.6 was announced: https://www.khronos.org/news/press/khronos-releases-opengl-4.6-with-spir-v-support

For future reference, there's a bug group (“Confidential Mozilla Employee Bug” or moco-confidential) that allows access only to people who've signed NDAs with Mozilla Corporation; if that's too permissive, it's also possible to request a group specifically for confidential non-security graphics bugs if that would be useful.
Group: core-security-release
You need to log in before you can comment on or make changes to this bug.