mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Add more error checks to shadow log parsing
i.e. Coverity warns about possible use of ftell() negative return value
This commit is contained in:
parent
39f549ed68
commit
ba0ba7c684
3 changed files with 35 additions and 3 deletions
6
CHANGES
6
CHANGES
|
@ -1,4 +1,10 @@
|
||||||
|
|
||||||
|
3.2.0-dev.885 | 2020-07-10 11:20:41 -0700
|
||||||
|
|
||||||
|
* Add more error checks to shadow log parsing (Jon Siwek, Corelight)
|
||||||
|
|
||||||
|
i.e. Coverity warns about possible use of ftell() negative return value
|
||||||
|
|
||||||
3.2.0-dev.884 | 2020-07-09 14:09:58 -0700
|
3.2.0-dev.884 | 2020-07-09 14:09:58 -0700
|
||||||
|
|
||||||
* Add Supervisor::{stdout,stderr}_hook (Jon Siwek, Corelight)
|
* Add Supervisor::{stdout,stderr}_hook (Jon Siwek, Corelight)
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
3.2.0-dev.884
|
3.2.0-dev.885
|
||||||
|
|
|
@ -111,9 +111,35 @@ static std::optional<LeftoverLog> parse_shadow_log(const std::string& fname)
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
|
|
||||||
fseek(sf_stream, 0, SEEK_END);
|
int res = fseek(sf_stream, 0, SEEK_END);
|
||||||
|
|
||||||
|
if ( res == -1 )
|
||||||
|
{
|
||||||
|
rval.error = fmt("Failed to fseek(SEEK_END) on %s: %s",
|
||||||
|
rval.shadow_filename.data(), strerror(errno));
|
||||||
|
fclose(sf_stream);
|
||||||
|
return rval;
|
||||||
|
}
|
||||||
|
|
||||||
auto sf_len = ftell(sf_stream);
|
auto sf_len = ftell(sf_stream);
|
||||||
fseek(sf_stream, 0, SEEK_SET);
|
|
||||||
|
if ( sf_len == -1 )
|
||||||
|
{
|
||||||
|
rval.error = fmt("Failed to ftell() on %s: %s",
|
||||||
|
rval.shadow_filename.data(), strerror(errno));
|
||||||
|
fclose(sf_stream);
|
||||||
|
return rval;
|
||||||
|
}
|
||||||
|
|
||||||
|
res = fseek(sf_stream, 0, SEEK_SET);
|
||||||
|
|
||||||
|
if ( res == -1 )
|
||||||
|
{
|
||||||
|
rval.error = fmt("Failed to fseek(SEEK_SET) on %s: %s",
|
||||||
|
rval.shadow_filename.data(), strerror(errno));
|
||||||
|
fclose(sf_stream);
|
||||||
|
return rval;
|
||||||
|
}
|
||||||
|
|
||||||
auto sf_content = std::make_unique<char[]>(sf_len);
|
auto sf_content = std::make_unique<char[]>(sf_len);
|
||||||
auto bytes_read = fread(sf_content.get(), 1, sf_len, sf_stream);
|
auto bytes_read = fread(sf_content.get(), 1, sf_len, sf_stream);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue