<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/250b340d3d473c534fcf05eac757e2f2c8bd67e3">https://github.com/macports/macports-base/commit/250b340d3d473c534fcf05eac757e2f2c8bd67e3</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 250b340d3d473c534fcf05eac757e2f2c8bd67e3
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Tue Oct 31 11:18:34 2023 +0100

<span style='display:block; white-space:pre;color:#404040;'>    cregistry/snapshot: Add OOM error handling
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    When one of the various strdup() calls above failed, we would return
</span><span style='display:block; white-space:pre;color:#404040;'>    NULL before, and not clean up after ourselves. Add error handling to
</span><span style='display:block; white-space:pre;color:#404040;'>    avoid this.
</span>---
 src/cregistry/snapshot.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/cregistry/snapshot.c b/src/cregistry/snapshot.c
</span><span style='display:block; white-space:pre;color:#808080;'>index ac6dca0f5..8a6fe6d0b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/cregistry/snapshot.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/cregistry/snapshot.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -339,6 +339,18 @@ int reg_snapshot_ports_get(reg_snapshot* snapshot, port*** ports, reg_error* err
</span>                     current_port->variants = strdup(variants);
                     current_port->requested_variants = strdup(requested_variants);
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if (current_port->name == NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            || current_port->state == NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            || current_port->variants == NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            || current_port->requested_variants == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        free(current_port->name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        free(current_port->state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        free(current_port->variants);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        free(current_port->requested_variants);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        r = SQLITE_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>                     if (!reg_listcat((void***)&result, &result_count, &result_space, current_port)) {
                             r = SQLITE_ERROR;
                     }
</pre><pre style='margin:0'>

</pre>