mirror of
https://github.com/github/codeql.git
synced 2025-12-21 19:26:31 +01:00
JS: Skip files with unsupported file encoding
This commit is contained in:
@@ -5,7 +5,7 @@ import java.io.File;
|
|||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.CharacterCodingException;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
@@ -17,6 +17,7 @@ import com.semmle.js.extractor.trapcache.CachingTrapWriter;
|
|||||||
import com.semmle.js.extractor.trapcache.ITrapCache;
|
import com.semmle.js.extractor.trapcache.ITrapCache;
|
||||||
import com.semmle.util.data.StringUtil;
|
import com.semmle.util.data.StringUtil;
|
||||||
import com.semmle.util.exception.Exceptions;
|
import com.semmle.util.exception.Exceptions;
|
||||||
|
import com.semmle.util.exception.ResourceError;
|
||||||
import com.semmle.util.extraction.ExtractorOutputConfig;
|
import com.semmle.util.extraction.ExtractorOutputConfig;
|
||||||
import com.semmle.util.files.FileUtil;
|
import com.semmle.util.files.FileUtil;
|
||||||
import com.semmle.util.io.WholeIO;
|
import com.semmle.util.io.WholeIO;
|
||||||
@@ -438,7 +439,16 @@ public class FileExtractor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// populate source archive
|
// populate source archive
|
||||||
String source = new WholeIO(config.getDefaultEncoding()).strictread(f);
|
WholeIO wholeIO = new WholeIO(config.getDefaultEncoding(), true);
|
||||||
|
String source = wholeIO.read(f);
|
||||||
|
if (source == null) {
|
||||||
|
if (wholeIO.getLastException() instanceof CharacterCodingException) {
|
||||||
|
System.err.println("Skipped due to unsupported character encoding: " + f);
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
throw new ResourceError("Failed to read file " + f, wholeIO.getLastException());
|
||||||
|
}
|
||||||
|
}
|
||||||
outputConfig.getSourceArchive().add(f, source);
|
outputConfig.getSourceArchive().add(f, source);
|
||||||
|
|
||||||
// extract language-independent bits
|
// extract language-independent bits
|
||||||
|
|||||||
Reference in New Issue
Block a user