--- freetype-2.4.3.orig/src/base/ftlcdfil.c 2010-11-17 18:15:22.870257103 -0600 +++ freetype-2.4.3/src/base/ftlcdfil.c 2010-11-17 18:13:49.041054573 -0600 @@ -945,19 +1025,23 @@ if ( checked_filter_params_env == 0 ) { char *filter_params = getenv( "INFINALITY_FT_FILTER_PARAMS" ); - if ( filter_params != NULL ) + if ( filter_params != NULL && strcmp(filter_params, "") != 0 ) { float f1, f2, f3, f4, f5; if ( strcasecmp(filter_params, "default" ) != 0) { - sscanf ( filter_params, "%f %f %f %f %f", &f1, &f2, &f3, &f4, &f5 ); + int args_assigned = 0; + args_assigned = sscanf ( filter_params, "%f %f %f %f %f", &f1, &f2, &f3, &f4, &f5 ); - default_filter[0] = (FT_Byte) (f1 * 255.0f + 0.5f); - default_filter[1] = (FT_Byte) (f2 * 255.0f + 0.5f); - default_filter[2] = (FT_Byte) (f3 * 255.0f + 0.5f); - default_filter[3] = (FT_Byte) (f4 * 255.0f + 0.5f); - default_filter[4] = (FT_Byte) (f5 * 255.0f + 0.5f); + if ( args_assigned == 5 ) + { + default_filter[0] = (FT_Byte) (f1 * 255.0f + 0.5f); + default_filter[1] = (FT_Byte) (f2 * 255.0f + 0.5f); + default_filter[2] = (FT_Byte) (f3 * 255.0f + 0.5f); + default_filter[3] = (FT_Byte) (f4 * 255.0f + 0.5f); + default_filter[4] = (FT_Byte) (f5 * 255.0f + 0.5f); + } } } checked_filter_params_env = 1;