Преглед изворни кода

add sanity check before exec'ing sql

tags/2.0.1
Jonathan Cobb пре 4 година
родитељ
комит
415f75098d
1 измењених фајлова са 10 додато и 2 уклоњено
  1. +10
    -2
      wizard-server/src/main/java/org/cobbzilla/wizard/dao/SqlViewSearchHelper.java

+ 10
- 2
wizard-server/src/main/java/org/cobbzilla/wizard/dao/SqlViewSearchHelper.java Прегледај датотеку

@@ -98,7 +98,10 @@ public class SqlViewSearchHelper {

try {
final Object[] args = params.toArray();

if (query.contains(";")) {
log.warn("search: query contained ';' returning empty results");
return new SearchResults<>();
}
final ResultSetBean rs = configuration.execSql(query, args);
final List<Future<?>> results = new ArrayList<>(rs.rowCount());
final ExecutorService exec = searchByEncryptedField ? fixedPool(Math.min(16, rs.rowCount())) : null;
@@ -124,7 +127,12 @@ public class SqlViewSearchHelper {
}

if (!searchByEncryptedField) {
totalCount = configuration.execSql("select count(*) "+sql.toString(), args).countOrZero();
final String fromAndWhereClauses = sql.toString();
if (fromAndWhereClauses.contains(";")) {
log.warn("search: query contained ';' returning empty results");
return new SearchResults<>();
}
totalCount = configuration.execSql("select count(*) "+fromAndWhereClauses, args).countOrZero();
return new SearchResults<>(thingsList, totalCount);
}



Loading…
Откажи
Сачувај