/** * @name Use of fgets() * @description fgets() is dangerous to call. Use read_line() instead. * @kind problem * @problem.severity error * @precision high * @id cpp/fgets * @tags reliability * security */ import cpp predicate dangerousFunction(Function function) { exists (string name | name = function.getQualifiedName() | name = "fgets") } from FunctionCall call, Function target where call.getTarget() = target and dangerousFunction(target) select call, target.getQualifiedName() + " is potentially dangerous"