Sure: https://bro-tracker.atlassian.net/projects/BIT/issues/BIT-1532
On 02.02.2016 17:55, Robin Sommer wrote: > Mind filing this as a ticket? That ensures it doesn't get lost. > > Robin > > On Tue, Feb 02, 2016 at 17:48 +0100, you wrote: > >> Ok, >> >> here we go (cf. attachment). >> >> With my older state (2.3.XXX) of bro, all tests still are green after the >> patch. >> >> The patch applies cleanly also to the current git head, but there I didn't >> execute the test suite. >> >> Best regards, >> >> Dirk >> >> On 02.02.2016 17:21, Robin Sommer wrote: >>> On Tue, Feb 02, 2016 at 16:33 +0100, you wrote: >>> >>>> Val* ma = new StringVal(n, (const char*) t); >>>> a->Assign(ma, 0); >>>> Unref(ma); >>>> Is my observation correct? >>> It is, good catch. Assign() take ownership of the value (0 in this >>> case), but not of the index. Yes, please send a patch for this one and >>> other instances you find. Thanks, >>> >>> Robin >>> >> -- >> >> Dr.-Ing. Dirk Leinenbach - Leitung Softwareentwicklung >> consistec Engineering & Consulting GmbH >> ------------------------------------------------------------------ >> >> Europaallee 5 Fon: +49 (0)681 / 959044-0 >> D-66113 Saarbrücken Fax: +49 (0)681 / 959044-11 >> http://www.consistec.de e-mail: [email protected] >> >> Registergericht: Amtsgericht Saarbrücken >> Registerblatt: HRB12003 >> Geschäftsführer: Dr. Thomas Sinnwell, Volker Leiendecker, Stefan Sinnwell >> >> From f0f66eedcd236966e1bde04afa95b4cf11cc4328 Mon Sep 17 00:00:00 2001 >> From: Dirk Leinenbach <[email protected]> >> Date: Tue, 2 Feb 2016 17:33:50 +0100 >> Subject: [PATCH] fix memory leaks in find_all() and IRC analyzer >> >> --- >> src/analyzer/protocol/irc/IRC.cc | 4 +++- >> src/strings.bif | 4 +++- >> 2 files changed, 6 insertions(+), 2 deletions(-) >> >> diff --git a/src/analyzer/protocol/irc/IRC.cc >> b/src/analyzer/protocol/irc/IRC.cc >> index 96449ea..0fe9bcd 100644 >> --- a/src/analyzer/protocol/irc/IRC.cc >> +++ b/src/analyzer/protocol/irc/IRC.cc >> @@ -268,7 +268,9 @@ void IRC_Analyzer::DeliverStream(int length, const >> u_char* line, bool orig) >> { >> if ( parts[i][0] == '@' ) >> parts[i] = parts[i].substr(1); >> - set->Assign(new StringVal(parts[i].c_str()), 0); >> + Val* idx = new StringVal(parts[i].c_str()); >> + set->Assign(idx, 0); >> + Unref(idx); >> } >> vl->append(set); >> >> diff --git a/src/strings.bif b/src/strings.bif >> index ebee7d9..914baae 100644 >> --- a/src/strings.bif >> +++ b/src/strings.bif >> @@ -1161,7 +1161,9 @@ function find_all%(str: string, re: pattern%) : >> string_set >> int n = re->MatchPrefix(t, e - t); >> if ( n >= 0 ) >> { >> - a->Assign(new StringVal(n, (const char*) t), 0); >> + Val* idx = new StringVal(n, (const char*) t); >> + a->Assign(idx, 0); >> + Unref(idx); >> t += n - 1; >> } >> } > -- Dr.-Ing. Dirk Leinenbach - Leitung Softwareentwicklung consistec Engineering & Consulting GmbH ------------------------------------------------------------------ Europaallee 5 Fon: +49 (0)681 / 959044-0 D-66113 Saarbrücken Fax: +49 (0)681 / 959044-11 http://www.consistec.de e-mail: [email protected] Registergericht: Amtsgericht Saarbrücken Registerblatt: HRB12003 Geschäftsführer: Dr. Thomas Sinnwell, Volker Leiendecker, Stefan Sinnwell _______________________________________________ bro-dev mailing list [email protected] http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev
