fix: Improve input validation and update binaries
All checks were successful
Build / Build (push) Successful in 29s
All checks were successful
Build / Build (push) Successful in 29s
This commit addresses several input validation issues in the ArmaRAMDb SQF functions and updates the compiled binaries. * **Input Validation:** Modified several `fnc_` functions to correctly validate input data. Specifically, changed `isNil` checks to `count _data == 0` to ensure that empty arrays are treated as invalid input, improving the robustness of the functions. This affects `fnc_hashSetId.sqf`, `fnc_listSet.sqf`, `fnc_hashSet.sqf`, `fnc_listAdd.sqf`, `fnc_hashSetIdBulk.sqf`, and `fnc_hashSetBulk.sqf`. * **Configuration File Path:** Fixed an issue in `Main.cs` where the configuration file path was not correctly constructed, ensuring the config file is loaded correctly. * **Updated DLL/SO:** Updated the ArmaRAMDb_x64.dll and ArmaRAMDb_x64.so files.
This commit is contained in:
parent
e775e48f8d
commit
58bf3b650f
Binary file not shown.
BIN
ArmaRAMDb_x64.so
BIN
ArmaRAMDb_x64.so
Binary file not shown.
@ -35,7 +35,7 @@ params [["_keyField", "", [""]], ["_data", [], [[]]]];
|
|||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSet' KeyField: '%1', Data: '%2'", _keyField, _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSet' KeyField: '%1', Data: '%2'", _keyField, _data];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (_keyField == "" || isNil "_data") exitWith {
|
if (_keyField == "" || count _data == 0) exitWith {
|
||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSet' Invalid Input for KeyField '%1' or Data '%2'", _keyField, _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSet' Invalid Input for KeyField '%1' or Data '%2'", _keyField, _data];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ params [["_data", [], [[]]]];
|
|||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetBulk' Data: %1", _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetBulk' Data: %1", _data];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (isNil "_data") exitWith {
|
if (count _data == 0) exitWith {
|
||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetBulk' Invalid Input for Data '%1'", _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetBulk' Invalid Input for Data '%1'", _data];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ params [["_key", "", [""]], ["_keyField", "", [""]], ["_data", [], [[]]]];
|
|||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetId' Key: '%1', KeyField: '%2', Data: '%3'", _key, _keyField, _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetId' Key: '%1', KeyField: '%2', Data: '%3'", _key, _keyField, _data];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (_key == "" || _keyField == "" || isNil "_data") exitWith {
|
if (_key == "" || _keyField == "" || count _data == 0) exitWith {
|
||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetId' Invalid Input for Key '%1', KeyField '%2' or Data '%3'", _key, _keyField, _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetId' Invalid Input for Key '%1', KeyField '%2' or Data '%3'", _key, _keyField, _data];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ params [["_data", [], [[]]]];
|
|||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetIdBulk' Data: %1", _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetIdBulk' Data: %1", _data];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (isNil "_data") exitWith {
|
if (count _data == 0) exitWith {
|
||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetIdBulk' Invalid Input for Data '%1'", _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_hashSetIdBulk' Invalid Input for Data '%1'", _data];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ params [["_key", "", [""]], ["_data", [], [[]]]];
|
|||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_listAdd' Key: '%1', Data: '%2'", _key, _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_listAdd' Key: '%1', Data: '%2'", _key, _data];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (_key == "" || isNil "_data") exitWith {
|
if (_key == "" || count _data == 0) exitWith {
|
||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_listAdd' Invalid Input for Key '%1' or Data '%2'", _key, _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_listAdd' Invalid Input for Key '%1' or Data '%2'", _key, _data];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ params [["_key", "", [""]], ["_index", -1, [0]], ["_data", [], [[]]]];
|
|||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_listSet' Key: '%1', Index: '%2', Data: '%3'", _key, _index, _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_listSet' Key: '%1', Index: '%2', Data: '%3'", _key, _index, _data];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (_key == "" || isNil "_data") exitWith {
|
if (_key == "" || count _data == 0) exitWith {
|
||||||
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_listSet' Invalid Input for Key '%1' or Data '%2'", _key, _data];
|
diag_log text format ["ArmaRAMDb: 'ramdb_db_fnc_listSet' Invalid Input for Key '%1' or Data '%2'", _key, _data];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -48,13 +48,13 @@ namespace ArmaRAMDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (str == "")
|
if (str == "")
|
||||||
str = "@ramdb\\config.xml";
|
str = $"@ramdb{Path.DirectorySeparatorChar}config.xml";
|
||||||
|
|
||||||
if (File.Exists(Environment.CurrentDirectory + "\\" + str))
|
if (File.Exists(Environment.CurrentDirectory + $"{Path.DirectorySeparatorChar}{str}"))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var configXml = XElement.Load(Environment.CurrentDirectory + "\\" + str);
|
var configXml = XElement.Load(Environment.CurrentDirectory + $"{Path.DirectorySeparatorChar}{str}");
|
||||||
List<string> settings = [.. configXml.Elements().Select(element => (string)element)];
|
List<string> settings = [.. configXml.Elements().Select(element => (string)element)];
|
||||||
|
|
||||||
// Parse existing settings
|
// Parse existing settings
|
||||||
|
Loading…
x
Reference in New Issue
Block a user