mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
cleanup: replace membuffer by membufferpp in C-code
Thus, the membuffer data is automatically freed when going out of scope - one thing less to worry about. This fixes one use-after-free bug in uploadDiveLogsDE.cpp and one extremely questionable practice in divetooltipitem.cpp: The membuffer was a shared instance across all instances of the DiveToolTipItem. Remves unnecessary #include directives in files that didn't even use membuffer. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
f142e9a9c6
commit
16b31985c3
9 changed files with 9 additions and 21 deletions
|
@ -97,7 +97,7 @@ bool uploadDiveLogsDE::prepareDives(const QString &tempfile, bool selected)
|
|||
const char *membuf;
|
||||
xmlDoc *transformed;
|
||||
struct zip_source *s;
|
||||
struct membuffer mb = {};
|
||||
struct membufferpp mb;
|
||||
struct xml_params *params = alloc_xml_params();
|
||||
|
||||
/*
|
||||
|
@ -109,9 +109,7 @@ bool uploadDiveLogsDE::prepareDives(const QString &tempfile, bool selected)
|
|||
continue;
|
||||
}
|
||||
|
||||
/* make sure the buffer is empty and add the dive */
|
||||
mb.len = 0;
|
||||
|
||||
/* add the dive */
|
||||
struct dive_site *ds = dive->dive_site;
|
||||
|
||||
if (ds) {
|
||||
|
@ -140,7 +138,7 @@ bool uploadDiveLogsDE::prepareDives(const QString &tempfile, bool selected)
|
|||
put_format(&mb, "</divelog>\n");
|
||||
}
|
||||
membuf = mb_cstring(&mb);
|
||||
streamsize = strlen(membuf);
|
||||
streamsize = mb.len;
|
||||
/*
|
||||
* Parse the memory buffer into XML document and
|
||||
* transform it to divelogs.de format, finally dumping
|
||||
|
@ -156,7 +154,6 @@ bool uploadDiveLogsDE::prepareDives(const QString &tempfile, bool selected)
|
|||
free_xml_params(params);
|
||||
return false;
|
||||
}
|
||||
free_buffer(&mb);
|
||||
|
||||
xml_params_add_int(params, "allcylinders", prefs.display_unused_tanks);
|
||||
transformed = xsltApplyStylesheet(xslt, doc, xml_params_get(params));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue