fix(review): address PR #105 review follow-ups
All checks were successful
CI Code / Check coding style (pull_request) Successful in 31s
CI Code / Check spelling (pull_request) Successful in 18s
CI Code / Linux (debian) (pull_request) Successful in 4m45s
CI Code / Linux (ubuntu) (pull_request) Successful in 4m56s
CI Code / Linux (arch) (pull_request) Successful in 5m39s
CI Code / Code Coverage (pull_request) Successful in 6m41s
All checks were successful
CI Code / Check coding style (pull_request) Successful in 31s
CI Code / Check spelling (pull_request) Successful in 18s
CI Code / Linux (debian) (pull_request) Successful in 4m45s
CI Code / Linux (ubuntu) (pull_request) Successful in 4m56s
CI Code / Linux (arch) (pull_request) Successful in 5m39s
CI Code / Code Coverage (pull_request) Successful in 6m41s
- src/log.c: log_stderr_init no longer closes STDERR_FILENO immediately
after dup2(). The previous 'close(dup_fd)' closed fd 2 because dup2
returns newfd on success; the in-app stderr capture pipe was silently
dead, dropping libstrophe/openssl error output. Close the original
stderr_pipe[1] instead and remember that the write end now lives at
STDERR_FILENO so _log_stderr_close stays correct.
- src/database_sqlite.c: NULL-check sqlite3_mprintf result before
passing it to sqlite3_exec in the DbVersion bootstrap path.
- src/tools/editor.c: drop three orphan #includes (<fcntl.h>,
<pthread.h>, <readline/readline.h>) left behind when 9b03e3a50
removed the async-editor path.
- src/xmpp/jid.c: match the g_new0 allocation in jid_create with
g_free in jid_destroy. Same behaviour on glibc but stops being a
foot-gun under custom glib allocators.
Verified with ci-build.sh in Debian docker: all 4 configs pass
(644/0, 605/0, 605/0, 644/0 unit + 130/0 functional).
This commit is contained in:
@@ -232,6 +232,10 @@ _sqlite_init(ProfAccount* account)
|
||||
auto_sqlite char* init_version_query = sqlite3_mprintf(
|
||||
"INSERT INTO `DbVersion` (`version`) VALUES (%d) ON CONFLICT(`version`) DO NOTHING",
|
||||
latest_version);
|
||||
if (!init_version_query) {
|
||||
log_error("OOM allocating initial DbVersion insert query");
|
||||
goto out;
|
||||
}
|
||||
if (SQLITE_OK != sqlite3_exec(g_chatlog_database, init_version_query, NULL, 0, &err_msg)) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -348,10 +348,11 @@ log_stderr_init(log_level_t level)
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
int dup_fd = dup2(stderr_pipe[1], STDERR_FILENO);
|
||||
if (dup_fd < 0)
|
||||
if (dup2(stderr_pipe[1], STDERR_FILENO) < 0)
|
||||
goto err_free;
|
||||
close(dup_fd);
|
||||
// fd 2 now owns the pipe write end; release the original.
|
||||
close(stderr_pipe[1]);
|
||||
stderr_pipe[1] = STDERR_FILENO;
|
||||
|
||||
stderr_level = level;
|
||||
stderr_inited = 1;
|
||||
|
||||
@@ -9,14 +9,11 @@
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later WITH OpenSSL-exception
|
||||
*/
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <glib.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h> // necessary for readline
|
||||
#include <readline/readline.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/wait.h>
|
||||
#include <unistd.h>
|
||||
#include <pthread.h>
|
||||
#include <signal.h>
|
||||
|
||||
#include "config/files.h"
|
||||
|
||||
@@ -217,7 +217,7 @@ jid_destroy(Jid* jid)
|
||||
g_free(jid->resourcepart);
|
||||
g_free(jid->barejid);
|
||||
g_free(jid->fulljid);
|
||||
free(jid);
|
||||
g_free(jid);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
||||
Reference in New Issue
Block a user