Hello, the TCustomJSONRPCHandler.DoCheckParamArray in fpjsonrpc.pp causes an exception with the message "List index (0) out of bounds".
This happens, for example, if ParamArray is empty and there are not required parameter in ParamDef (required not set). In that case ParamArray[i] not exists, so Param:=ParamArray[i] raises "index out of bounds" exception. I would like to check this before assignment, may be like this procedure TCustomJSONRPCHandler.DoCheckParamArray(const ParamArray: TJSONArray); var I : Integer; Param: TJSONData; Def : TJSONParamDef; begin for I:=0 to ParamDefs.Count-1 do begin Def:=ParamDefs[i]; if I>=ParamArray.Count then if ParamDefs[i].Required then JSONRPCParamError(SErrParamsRequiredParamNotFound,[def.Name]); //Check ParamArray.Count first if (I<ParamArray.Count) then begin //<< added Param:=ParamArray[i]; // jtUnkown accepts all data types if (def.DataType<>jtUnknown) and not (Param.JSONType=def.DataType) then JSONRPCParamError(SErrParamsDataTypeMismatch,[def.Name,JSONTypeName(def.DataType),JSONTypeName(Param.JSONType)]); end; end; //<< added end; _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal