NvSOMEIP Changes#
Target Changes |
Backward Compatible |
Platform |
OS |
|---|---|---|---|
The |
No |
NSR, SR |
Linux and QNX |
Migration Path
7.2.4.0 to 7.2.5.0
Migration Rationale
Parsing a file stream is now the responsibility of the caller. This decouples the SOME/IP library from any specific storage format (JSON, KV, binary, XML, and so on), giving integrators flexibility to choose or implement their own parser. A reference configuration parser is provided alongside the library.
Reduced attack surface: The library no longer opens, reads, or interprets file I/O, eliminating an entire class of input-validation vulnerabilities.
Deterministic memory usage: All configuration is supplied as a pre-validated, fixed-size struct. There is no dynamic allocation driven by untrusted file content within the process boundary.
Security improvement: The trust boundary is shifted to the caller, who is responsible for authenticating and validating the configuration source before constructing the struct.
Steps to Migrate
Infra::SetConfig() no longer accepts a configuration file stream. Callers must now provide a populated NvSomeIpConfig structure.
Replace any SetConfig(fileStream) / file-stream-based configuration flow with construction of
NvSomeIpConfig.Populate
NvSomeIpConfigwith network, service, service discovery, TP, and client ID settings.Call
Infra::SetConfig(config)before any otherInfraAPI and beforeStart().If the application still uses a text config file, parse it first using
ConfigParserText::ParseFile(filePath, config), then pass the resulting struct toSetConfig(). TheConfigParserTextclass is provided in a sample folder namedconfig_parser.
Example Code:
NvSomeIp::NvSomeIpConfig config;
NvSomeIp::ConfigParserText parser;
if (parser.ParseFile(configFilePath, config) != NvSomeIp::ErrorCode::E_SUCCESS) {
return -1;
}
NvSomeIp::Infra& someipInstance = NvSomeIp::Infra::GetInstance();
NvSomeIp::ErrorCode err = someipInstance.SetConfig(config);