|
|
|
/*
|
|
|
|
* Copyright (c) 2017-present, Facebook, Inc.
|
|
|
|
*
|
|
|
|
* This source code is licensed under the MIT license found in the
|
|
|
|
* LICENSE file in the root directory of this source tree.
|
|
|
|
*/
|
|
|
|
|
|
|
|
package codetoanalyze.java.quandary;
|
|
|
|
|
|
|
|
import com.facebook.infer.builtins.InferTaint;
|
|
|
|
import java.io.File;
|
|
|
|
import java.nio.file.FileSystems;
|
|
|
|
import java.nio.file.Path;
|
|
|
|
import java.nio.file.Paths;
|
|
|
|
|
|
|
|
public class Files {
|
|
|
|
|
|
|
|
public File fileConstructorSinkBad() {
|
|
|
|
String taintedString = (String) InferTaint.inferSecretSource();
|
|
|
|
return new File(taintedString);
|
|
|
|
}
|
|
|
|
|
|
|
|
public Path fileSystemConstructorSinkBad1() {
|
|
|
|
String taintedString = (String) InferTaint.inferSecretSource();
|
|
|
|
return FileSystems.getDefault().getPath(taintedString);
|
|
|
|
}
|
|
|
|
|
|
|
|
// testing varags
|
|
|
|
public Path fileSystemConstructorSinkBad2() {
|
|
|
|
String taintedString = (String) InferTaint.inferSecretSource();
|
|
|
|
return FileSystems.getDefault().getPath("", taintedString);
|
|
|
|
}
|
|
|
|
|
|
|
|
public Path pathsSinkBad1() {
|
|
|
|
String taintedString = (String) InferTaint.inferSecretSource();
|
|
|
|
return Paths.get(taintedString);
|
|
|
|
}
|
|
|
|
|
|
|
|
// testing varags
|
|
|
|
public Path pathsSinkBad2() {
|
|
|
|
String taintedString = (String) InferTaint.inferSecretSource();
|
|
|
|
return Paths.get("", taintedString);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|