From: Bernhard Bauer Date: Tue, 25 May 2010 17:33:51 +0000 (-0700) Subject: Don't crash when an unknown language is specified with -x. X-Git-Tag: v3.0~76^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d4cdaed1f54f796161b7d7a2c637407c2178d90a;p=thirdparty%2Fccache.git Don't crash when an unknown language is specified with -x. --- diff --git a/ccache.c b/ccache.c index ac5f86b24..ec53e75c9 100644 --- a/ccache.c +++ b/ccache.c @@ -542,6 +542,7 @@ static const char *extension_for_language(const char *language) int i; const char *extension = getenv("CCACHE_EXTENSION"); if (extension) return extension; + if (language == NULL) return NULL; for (i=0; extensions[i].extension; i++) { if (strcmp(language, extensions[i].language) == 0) { @@ -1609,12 +1610,12 @@ static void process_args(int argc, char **argv, ARGS **preprocessor_args, if ((input_language == NULL) || (strcmp(input_language, "none") == 0)) { input_language = language_for_file(input_file); } - if (input_language == NULL) { + i_extension = extension_for_language(preprocessed_language(input_language, &direct_i_file)); + if (i_extension == NULL) { cc_log("Not a C/C++ file: %s", input_file); stats_update(STATS_NOTC); failed(); } - i_extension = extension_for_language(preprocessed_language(input_language, &direct_i_file)); if (!found_c_opt) { cc_log("No -c option found");