Fix memory error detected by valgrind

The assignment name = sub.str(1) reads from the first argument given to
regex_match(), but previously this was a temporary object which was already
out of scope. This did probably not matter much in practice, but invoked
undefined behaviour, and as we all know this is allowed ton format your hard
disk or kill to your cat, so better fix this.
This commit is contained in:
Georg Baum 2014-11-19 20:42:04 +01:00
parent 3cc5283940
commit e32147a1fe
2 changed files with 4 additions and 2 deletions

View File

@ -666,8 +666,8 @@ int LaTeX::scanLogFile(TeXErrors & terr)
size_t len = j == string::npos
? token.substr(i + 1).length()
: j - i - 1;
if (regex_match(token.substr(i + 1, len),
sub, child_file)) {
string const substr = token.substr(i + 1, len);
if (regex_match(substr, sub, child_file)) {
string const name = sub.str(1);
child.push(make_pair(name, pnest));
i += len;

View File

@ -126,6 +126,8 @@ What's new
- Fix possible memory corruption on copying to the clipboard
- Fix possible memory corruption during LaTeX log file parsing.
* DOCUMENTATION AND LOCALIZATION