Skip to content

Commit adf084c

Browse files
committed
Calculate bytes using UTF-8 encoding
1 parent d97f5b6 commit adf084c

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

agent_api/src/main/java/dev/aikido/agent_api/vulnerabilities/sql_injection/RustSQLInterface.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,35 @@
22

33
import jnr.ffi.LibraryLoader;
44
import jnr.ffi.LibraryOption;
5+
import jnr.ffi.annotations.Encoding;
56
import dev.aikido.agent_api.helpers.logging.LogManager;
67
import dev.aikido.agent_api.helpers.logging.Logger;
78

89
import java.nio.file.Files;
910
import java.nio.file.Path;
1011
import java.util.HashMap;
1112
import java.util.Map;
13+
import java.nio.charset.StandardCharsets;
1214

1315
import static dev.aikido.agent_api.vulnerabilities.sql_injection.GetBinaryPath.getPathForBinary;
1416

1517
public final class RustSQLInterface {
1618
private RustSQLInterface() {}
1719

1820
private static final Logger logger = LogManager.getLogger(RustSQLInterface.class);
21+
22+
@Encoding("UTF-8")
1923
public interface SqlLib {
2024
int detect_sql_injection(String query, long queryLen, String userinput, long userinputLen, int dialect);
2125
}
26+
2227
public static boolean detectSqlInjection(String query, String userInput, Dialect dialect) {
2328
int dialectInteger = dialect.getDialectInteger();
2429
try {
2530
SqlLib lib = loadLibrary();
2631
if (lib != null) {
27-
long queryLen = query != null ? query.length() : 0;
28-
long userInputLen = userInput != null ? userInput.length() : 0;
32+
long queryLen = query != null ? query.getBytes(StandardCharsets.UTF_8).length : 0;
33+
long userInputLen = userInput != null ? userInput.getBytes(StandardCharsets.UTF_8).length : 0;
2934
int result = lib.detect_sql_injection(query, queryLen, userInput, userInputLen, dialectInteger);
3035
return result == 1;
3136
}

0 commit comments

Comments
 (0)