Selaa lähdekoodia

add sanity check before exec'ing sql

tags/2.0.1
Jonathan Cobb 4 vuotta sitten
vanhempi
commit
415f75098d
1 muutettua tiedostoa jossa 10 lisäystä ja 2 poistoa
  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 Näytä tiedosto

@@ -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);
}



Ladataan…
Peruuta
Tallenna