Changeset: b4f32752a310 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b4f32752a310
Modified Files:
        tools/monetdbe/monetdbe.c
Branch: Jul2021
Log Message:

Fix memory management for bounded variable sized parameters.


diffs (27 lines):

diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c
--- a/tools/monetdbe/monetdbe.c
+++ b/tools/monetdbe/monetdbe.c
@@ -1548,6 +1548,8 @@ monetdbe_bind(monetdbe_statement *stmt, 
                        memcpy(b->data, be->data, len);
                }
                VALset(&stmt_internal->data[i], tpe, b);
+       } else if (tpe == TYPE_str) {
+               VALset(&stmt_internal->data[i], tpe, GDKstrdup(data));
        } else {
                VALset(&stmt_internal->data[i], tpe, data);
        }
@@ -1607,6 +1609,14 @@ monetdbe_cleanup_statement(monetdbe_data
        cq *q = stmt_internal->q;
 
        assert(!stmt_internal->mdbe || mdbe == stmt_internal->mdbe);
+
+       for (size_t i = 0; i < stmt_internal->res.nparam + 1; i++) {
+               ValPtr data = &stmt_internal->data[i];
+               if (data->vtype == TYPE_str || data->vtype == TYPE_blob) {
+                       GDKfree(data->val.pval);
+               }
+       }
+
        GDKfree(stmt_internal->data);
        GDKfree(stmt_internal->args);
        GDKfree(stmt_internal->res.type);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to