diff options
author | 2015-06-15 12:38:20 +1000 | |
---|---|---|
committer | 2015-06-15 12:38:50 +1000 | |
commit | 277bd7e759a00e404ccfbd089cedaf4cd68cfd41 (patch) | |
tree | 4badf0369ad295bcfbb19b39bfb5b1cda8eb5335 /src/osd/modules/opengl | |
parent | 215e9a8be91b6ef9b6ea43d1e9674b7abd661c23 (diff) |
Fix off-by-one
Diffstat (limited to 'src/osd/modules/opengl')
-rw-r--r-- | src/osd/modules/opengl/gl_shader_tool.c | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/src/osd/modules/opengl/gl_shader_tool.c b/src/osd/modules/opengl/gl_shader_tool.c index 5d308882ed8..203869e308e 100644 --- a/src/osd/modules/opengl/gl_shader_tool.c +++ b/src/osd/modules/opengl/gl_shader_tool.c @@ -374,11 +374,6 @@ errout: int gl_compile_shader_file( GLhandleARB *shader, GLenum type, const char * shader_file, int verbose ) { - int err = 0, i, c; - FILE * file = NULL; - int buffer_len = 8192; - GLcharARB *buffer=NULL; - if(shader==NULL || shader_file==NULL) { if(shader==NULL) @@ -388,7 +383,7 @@ int gl_compile_shader_file( GLhandleARB *shader, GLenum type, const char * shade return -1; } - file = fopen(shader_file, "r"); + FILE *const file = fopen(shader_file, "r"); if(!file) { osd_printf_warning("cannot open shader_file: %s\n", shader_file); @@ -397,23 +392,20 @@ int gl_compile_shader_file( GLhandleARB *shader, GLenum type, const char * shade // get the real file size fseek(file, 0, SEEK_END); - buffer_len = (int)ftell(file); + int const buffer_len = (int)ftell(file); fseek(file, 0, SEEK_SET); - buffer = (GLcharARB *) malloc(buffer_len); - memset(buffer, 0, buffer_len); + GLcharARB *const buffer = (GLcharARB *)malloc(buffer_len + 1); + memset(buffer, 0, buffer_len + 1); - /* Load Shader Sources */ - i=0; - while( i<buffer_len-1 && EOF!=(c=fgetc(file)) ) - buffer[i++]=(char)c; + /* Load Shader Sources */ + for( int i = 0, c = 0; i<buffer_len && EOF!=(c=fgetc(file)); i++ ) + buffer[i]=(char)c; fclose(file); - buffer[i]='\0'; - - err=gl_compile_shader_source(shader, type, buffer, verbose); - if(err) goto errout; + int const err=gl_compile_shader_source(shader, type, buffer, verbose); free(buffer); + if(err) goto errout; if(verbose) osd_printf_warning("shader file: %s\n", shader_file); @@ -421,9 +413,8 @@ int gl_compile_shader_file( GLhandleARB *shader, GLenum type, const char * shade return 0; errout: - free(buffer); osd_printf_warning("failed to process shader_file: %s\n", shader_file); - return err; + return err; } |