Explorar el Código

add sanity check before exec'ing sql

tags/2.0.1
Jonathan Cobb hace 4 años
padre
commit
415f75098d
Se han modificado 1 ficheros con 10 adiciones y 2 borrados
  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 Ver fichero

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



Cargando…
Cancelar
Guardar