These strings describe caller-owned writable storage, not text to terminate or copy. Keep the requested capacity and every native output parameter.
_glGetActiveAttrib :: (
program: GLuint,
index: GLuint,
bufSize: GLsizei,
length: *GLsizei,
size: *GLint,
type: *GLenum,
name: string
)