[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Groff-commit] groff ChangeLog src/roff/troff/env.cpp src/roff...
From: |
Werner LEMBERG |
Subject: |
[Groff-commit] groff ChangeLog src/roff/troff/env.cpp src/roff... |
Date: |
Tue, 24 Nov 2009 13:32:18 +0000 |
CVSROOT: /cvsroot/groff
Module name: groff
Changes by: Werner LEMBERG <wl> 09/11/24 13:32:18
Modified files:
. : ChangeLog
src/roff/troff : env.cpp input.cpp mtsm.cpp
Log message:
Fix double frees and memory leaks.
* src/roff/troff/env.cpp (environment::make_tag): Use local object.
* src/roff/troff/input.cpp (input_stack::check_end_diversion): Free
`diversion_state' here.
(interpolate_arg): Fix memory leaks.
* src/roff/troff/mtsm.cpp (mtsm::pop_state): Don't free `sp->state'.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/groff/ChangeLog?cvsroot=groff&r1=1.1215&r2=1.1216
http://cvs.savannah.gnu.org/viewcvs/groff/src/roff/troff/env.cpp?cvsroot=groff&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/groff/src/roff/troff/input.cpp?cvsroot=groff&r1=1.60&r2=1.61
http://cvs.savannah.gnu.org/viewcvs/groff/src/roff/troff/mtsm.cpp?cvsroot=groff&r1=1.6&r2=1.7
Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/groff/groff/ChangeLog,v
retrieving revision 1.1215
retrieving revision 1.1216
diff -u -b -r1.1215 -r1.1216
--- ChangeLog 20 Nov 2009 05:10:17 -0000 1.1215
+++ ChangeLog 24 Nov 2009 13:32:17 -0000 1.1216
@@ -1,3 +1,13 @@
+2009-11-24 Maurice van der Pot <address@hidden>
+
+ Fix double frees and memory leaks.
+
+ * src/roff/troff/env.cpp (environment::make_tag): Use local object.
+ * src/roff/troff/input.cpp (input_stack::check_end_diversion): Free
+ `diversion_state' here.
+ (interpolate_arg): Fix memory leaks.
+ * src/roff/troff/mtsm.cpp (mtsm::pop_state): Don't free `sp->state'.
+
2009-11-20 Paulo Ricardo Zanoni <address@hidden>
* */*.cpp: Replace `printf(string);' with `printf("%s", string);'.
Index: src/roff/troff/env.cpp
===================================================================
RCS file: /cvsroot/groff/groff/src/roff/troff/env.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- src/roff/troff/env.cpp 5 Jan 2009 20:11:12 -0000 1.22
+++ src/roff/troff/env.cpp 24 Nov 2009 13:32:18 -0000 1.23
@@ -2213,14 +2213,15 @@
*/
if (curdiv == topdiv && topdiv->before_first_page)
topdiv->begin_page();
- macro *m = new macro;
- m->append_str("devtag:");
+
+ macro m;
+ m.append_str("devtag:");
for (const char *p = nm; *p; p++)
if (!invalid_input_char((unsigned char)*p))
- m->append(*p);
- m->append(' ');
- m->append_int(i);
- return new special_node(*m);
+ m.append(*p);
+ m.append(' ');
+ m.append_int(i);
+ return new special_node(m);
}
return 0;
}
Index: src/roff/troff/input.cpp
===================================================================
RCS file: /cvsroot/groff/groff/src/roff/troff/input.cpp,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -b -r1.60 -r1.61
--- src/roff/troff/input.cpp 7 May 2009 16:22:17 -0000 1.60
+++ src/roff/troff/input.cpp 24 Nov 2009 13:32:18 -0000 1.61
@@ -531,6 +531,8 @@
{
if (t->is_diversion) {
div_level--;
+ if (diversion_state)
+ delete diversion_state;
diversion_state = t->diversion_state;
}
}
@@ -4398,6 +4400,7 @@
args += c;
if (i != limit)
args += ' ';
+ delete p;
}
if (limit > 0) {
args += '\0';
@@ -4419,6 +4422,7 @@
args += '"';
if (i != limit)
args += ' ';
+ delete p;
}
if (limit > 0) {
args += '\0';
@@ -4438,6 +4442,7 @@
}
if (input_stack::space_follows_arg(i))
args += ' ';
+ delete p;
}
if (limit > 0) {
args += '\0';
Index: src/roff/troff/mtsm.cpp
===================================================================
RCS file: /cvsroot/groff/groff/src/roff/troff/mtsm.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- src/roff/troff/mtsm.cpp 5 Jan 2009 20:11:12 -0000 1.6
+++ src/roff/troff/mtsm.cpp 24 Nov 2009 13:32:18 -0000 1.7
@@ -390,8 +390,6 @@
#endif
if (sp == 0)
fatal("empty state machine stack");
- if (sp->state)
- delete sp->state;
sp->state = 0;
stack *t = sp;
sp = sp->next;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Groff-commit] groff ChangeLog src/roff/troff/env.cpp src/roff...,
Werner LEMBERG <=