Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libalternatives for openSUSE:Factory
checked in at 2021-06-25 15:00:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libalternatives (Old)
and /work/SRC/openSUSE:Factory/.libalternatives.new.2625 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libalternatives"
Fri Jun 25 15:00:32 2021 rev:2 rq:901232 version:1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/libalternatives/libalternatives.changes
2021-06-11 00:19:09.673367739 +0200
+++
/work/SRC/openSUSE:Factory/.libalternatives.new.2625/libalternatives.changes
2021-06-25 15:00:41.196103905 +0200
@@ -1,0 +2,10 @@
+Mon Jun 21 22:00:23 UTC 2021 - [email protected]
+
+- Update to version v1.1:
+ * docs: Add broken manpage
+ * tests: unit tests configs
+ * tests: fix memory leak during tests
+ * list_binaries: initialize pointer that is later used in free
+ * libalts_exec_default() sets errno on not found
+
+-------------------------------------------------------------------
Old:
----
libalternatives-v1.0.obscpio
New:
----
libalternatives-v1.1.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libalternatives.spec ++++++
--- /var/tmp/diff_new_pack.5CjXgJ/_old 2021-06-25 15:00:41.872104730 +0200
+++ /var/tmp/diff_new_pack.5CjXgJ/_new 2021-06-25 15:00:41.876104735 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libalternatives
#
-# Copyright (c) 2021 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,21 +12,22 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
+
%define sover 1
Name: libalternatives
-Version: 1.0
+Version: 1.1
Release: 0
Summary: Executes preferred application based on user preferences
License: GPL-3.0-or-later AND LGPL-3.0-or-later
-Url: https://github.com/AdamMajer/libalternative.git
+URL: https://github.com/AdamMajer/libalternative.git
Source0: libalternatives-v%{version}.tar
-BuildRequires: gcc
BuildRequires: cmake > 3.8
BuildRequires: cunit-devel
+BuildRequires: gcc
%description
libalternatives is a helper that executes an application based on preferences
@@ -36,8 +37,8 @@
%package -n alts
-License: GPL-3.0-or-later
Summary: Executes preferred application based on user preferences
+License: GPL-3.0-or-later
%description -n alts
This package contains a default helper and configuration application utility
@@ -48,16 +49,16 @@
%package devel
-License: LGPL-3.0-or-later
Summary: Development headers for libalternatives
+License: LGPL-3.0-or-later
Requires: libalternatives%sover = %version
%description devel
This package contains development headers and library for libalternatives.
%package -n libalternatives%sover
-License: LGPL-3.0-or-later
Summary: Runtime for libalternatives
+License: LGPL-3.0-or-later
%description -n libalternatives%sover
This package contains the core logic and the runtime library for
@@ -67,8 +68,8 @@
need to maintain system symlinks states.
%package unit-test-helper
-License: LGPL-3.0-or-later
Summary: Verification helper for libalternatives
+License: LGPL-3.0-or-later
%description unit-test-helper
This is a testing-only installation that may be used to verify that successful
@@ -113,6 +114,7 @@
%license COPYING
%doc README.md
%_bindir/alts
+%_mandir/man1/alts.1.*
%files devel
%_includedir/libalternatives.h
++++++ _service ++++++
--- /var/tmp/diff_new_pack.5CjXgJ/_old 2021-06-25 15:00:41.944104818 +0200
+++ /var/tmp/diff_new_pack.5CjXgJ/_new 2021-06-25 15:00:41.948104823 +0200
@@ -3,7 +3,7 @@
<param name="scm">git</param>
<param name="url">https://github.com/openSUSE/libalternatives.git</param>
<param name="versionformat">@PARENT_TAG@</param>
- <param name="revision">v1.0</param>
+ <param name="revision">v1.1</param>
<param name="changesgenerate">enable</param>
</service>
<service mode="buildtime" name="tar"/>
++++++ libalternatives-v1.0.obscpio -> libalternatives-v1.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libalternatives-v1.0/.gitignore
new/libalternatives-v1.1/.gitignore
--- old/libalternatives-v1.0/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/libalternatives-v1.1/.gitignore 2021-06-21 23:57:16.000000000 +0200
@@ -0,0 +1 @@
+build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libalternatives-v1.0/CMakeLists.txt
new/libalternatives-v1.1/CMakeLists.txt
--- old/libalternatives-v1.0/CMakeLists.txt 2021-06-09 16:10:17.000000000
+0200
+++ new/libalternatives-v1.1/CMakeLists.txt 2021-06-21 23:57:16.000000000
+0200
@@ -30,3 +30,4 @@
add_subdirectory(src)
add_subdirectory(utils)
add_subdirectory(test)
+add_subdirectory(doc)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libalternatives-v1.0/doc/CMakeLists.txt
new/libalternatives-v1.1/doc/CMakeLists.txt
--- old/libalternatives-v1.0/doc/CMakeLists.txt 1970-01-01 01:00:00.000000000
+0100
+++ new/libalternatives-v1.1/doc/CMakeLists.txt 2021-06-21 23:57:16.000000000
+0200
@@ -0,0 +1,2 @@
+include(GNUInstallDirs)
+install(FILES alts.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1/)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libalternatives-v1.0/doc/alts.1
new/libalternatives-v1.1/doc/alts.1
--- old/libalternatives-v1.0/doc/alts.1 1970-01-01 01:00:00.000000000 +0100
+++ new/libalternatives-v1.1/doc/alts.1 2021-06-21 23:57:16.000000000 +0200
@@ -0,0 +1,40 @@
+'\" -*- coding: UTF-8 -*-
+.\" Man page for alts
+.\"
+.\" Copyright ??2021 SUSE LLC
+.\"
+.\" You may distribute under the terms of the GNU General Public
+.\" License as specified in the COPYING file that comes with the
+.\" libalterntaives distribution.
+.\"
+.pc
+.TH ALTS 1 "2021-07-07" "1.0.0" "libalterntaives"
+
+.SH NAME
+alts - manages preferred default commands
+
+.SH SYNOPSIS
+alts [options]
+
+.SH DESCRIPTION
+
+alts is a defaul program manager and its aim is to provide an alternative to
update-alternatives system
+without relying on symlinks. Instead of symlinks, it relies on configuration
files. This allows for
+simple per-system or per-user override of default configuration.
+
+.SH OPTIONS
+
+ alts -h --- this help screen
+ alts -l[name] --- list programs or just one with given name
+ alts [-u] [-s] -n <program> [-p <alt_priority>]
+ sets an override with a given priority as default
+ if priority is not set, then resets to default by removing override
+ -u -- user override, default for non-root users
+ -s -- system overrude, default for root users
+ -n -- program to override with a given priority alternative
+
+
+.SH SEE ALSO
+update-alternatives(1)
+
+.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libalternatives-v1.0/src/libalternatives.c
new/libalternatives-v1.1/src/libalternatives.c
--- old/libalternatives-v1.0/src/libalternatives.c 2021-06-09
16:10:17.000000000 +0200
+++ new/libalternatives-v1.1/src/libalternatives.c 2021-06-21
23:57:16.000000000 +0200
@@ -637,6 +637,7 @@
if (IS_DEBUG)
fprintf(stderr, "execDefault() failed with target %s\n", (alts
? alts->target : NULL));
+ errno = ENOENT;
return -1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libalternatives-v1.0/test/alternatives_tests.c
new/libalternatives-v1.1/test/alternatives_tests.c
--- old/libalternatives-v1.0/test/alternatives_tests.c 2021-06-09
16:10:17.000000000 +0200
+++ new/libalternatives-v1.1/test/alternatives_tests.c 2021-06-21
23:57:16.000000000 +0200
@@ -21,6 +21,7 @@
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
+#include <sys/wait.h>
#include <fcntl.h>
#include <unistd.h>
#include <CUnit/CUnit.h>
@@ -79,6 +80,7 @@
setConfigPath(full_path);
free((void*)wd);
+ free(full_path);
unlink(libalts_get_user_config_path());
unlink(libalts_get_system_config_path());
@@ -86,7 +88,7 @@
return 0;
}
-static int removeIOFiles()
+static int cleanupTests()
{
if (CU_get_number_of_failures() == 0) {
unlink(libalts_get_user_config_path());
@@ -154,7 +156,7 @@
char *args[] = {"app", "-l"};
CU_ASSERT_EQUAL(WRAP_CALL(args), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: multiple_alts\n\
Alternatives: 3\n\
Priority: 10 Target: /usr/bin/node10\n\
@@ -172,7 +174,7 @@
Alternatives: 2\n\
Priority: 10 Target: /usr/bin/false\n\
Priority: 20* Target: /usr/bin/true\n\
-"), 0);
+");
}
void listSpecificProgram()
@@ -180,13 +182,13 @@
char *args[] = {"app", "-l", "multiple_alts"};
CU_ASSERT_EQUAL(WRAP_CALL(args), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: multiple_alts\n\
Alternatives: 3\n\
Priority: 10 Target: /usr/bin/node10\n\
Priority: 20 Target: /usr/bin/node20\n\
Priority: 30* Target: /usr/bin/node30\n\
-"), 0);
+");
}
void adjustPriorityForSpecificProgram()
@@ -200,13 +202,13 @@
int src;
CU_ASSERT_EQUAL(WRAP_CALL(args_read), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: multiple_alts\n\
Alternatives: 3\n\
Priority: 10 Target: /usr/bin/node10\n\
Priority: 20 Target: /usr/bin/node20\n\
Priority: 30* Target: /usr/bin/node30\n\
-"), 0);
+");
CU_ASSERT_EQUAL(libalts_read_configured_priority(binary_name, &src), 0);
@@ -214,13 +216,13 @@
CU_ASSERT_EQUAL(stdout_buffer[0], '\0');
CU_ASSERT_EQUAL(WRAP_CALL(args_read), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: multiple_alts\n\
Alternatives: 3\n\
Priority: 10 Target: /usr/bin/node10\n\
Priority: 20~ Target: /usr/bin/node20\n\
Priority: 30 Target: /usr/bin/node30\n\
-"), 0);
+");
CU_ASSERT_EQUAL(libalts_read_configured_priority(binary_name, &src),
20);
CU_ASSERT_EQUAL(src, 2);
@@ -229,13 +231,13 @@
CU_ASSERT_EQUAL(stdout_buffer[0], '\0');
CU_ASSERT_EQUAL(WRAP_CALL(args_read), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: multiple_alts\n\
Alternatives: 3\n\
Priority: 10 Target: /usr/bin/node10\n\
Priority: 20~ Target: /usr/bin/node20\n\
Priority: 30 Target: /usr/bin/node30\n\
-"), 0);
+");
CU_ASSERT_EQUAL(libalts_read_configured_priority(binary_name, &src),
20);
CU_ASSERT_EQUAL(src, 2);
@@ -244,13 +246,13 @@
CU_ASSERT_EQUAL(stdout_buffer[0], '\0');
CU_ASSERT_EQUAL(WRAP_CALL(args_read), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: multiple_alts\n\
Alternatives: 3\n\
Priority: 10! Target: /usr/bin/node10\n\
Priority: 20 Target: /usr/bin/node20\n\
Priority: 30 Target: /usr/bin/node30\n\
-"), 0);
+");
CU_ASSERT_EQUAL(libalts_read_configured_priority(binary_name, &src),
10);
CU_ASSERT_EQUAL(src, 1);
@@ -259,13 +261,13 @@
CU_ASSERT_EQUAL(stdout_buffer[0], '\0');
CU_ASSERT_EQUAL(WRAP_CALL(args_read), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: multiple_alts\n\
Alternatives: 3\n\
Priority: 10 Target: /usr/bin/node10\n\
Priority: 20 Target: /usr/bin/node20\n\
Priority: 30* Target: /usr/bin/node30\n\
-"), 0);
+");
CU_ASSERT_EQUAL(libalts_read_configured_priority(binary_name, &src), 0);
}
@@ -280,7 +282,7 @@
static int restoreGroupTestsAndRemoveIOFiles()
{
setConfigDirectory(CONFIG_DIR);
- return removeIOFiles();
+ return cleanupTests();
}
static void listSpecificProgramInAGroup()
@@ -288,7 +290,7 @@
char *args[] = {"app", "-l", "node"};
CU_ASSERT_EQUAL(WRAP_CALL(args), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: node\n\
Alternatives: 3\n\
Priority: 10 Target: /usr/bin/node10\n\
@@ -297,7 +299,7 @@
Group: node, npm\n\
Priority: 30* Target: /usr/bin/node30\n\
Group: node, npm\n\
-"), 0);
+");
}
static void showErrorsForInconsistentGroups()
@@ -305,7 +307,7 @@
char *args[] = {"app", "-l", "node_bad"};
CU_ASSERT_EQUAL(WRAP_CALL(args), 1);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: node_bad\n\
Alternatives: 3\n\
Priority: 10 Target: /usr/bin/node10\n\
@@ -316,7 +318,7 @@
WARNING: shadows more complete Group with lower priority\n\
Priority: 30* Target: /usr/bin/node30\n\
WARNING: shadows more complete Group with lower priority\n\
-"), 0);
+");
}
static void setPrioritiesAffectEntireGroup()
@@ -328,7 +330,7 @@
char *args_status[] = {"app", "-l", "npm"};
CU_ASSERT_EQUAL(WRAP_CALL(args_status), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: npm\n\
Alternatives: 3\n\
Priority: 10 Target: /usr/bin/npm10\n\
@@ -337,10 +339,16 @@
Group: node, npm\n\
Priority: 30* Target: /usr/bin/npm30\n\
Group: node, npm\n\
-"), 0);
+");
+ char **manpages = libalts_get_default_manpages("npm");
+ CU_ASSERT_STRING_EQUAL(manpages[0], "npm30.1");
+ CU_ASSERT_EQUAL(manpages[1], NULL);
+ free(manpages[0]);
+ free(manpages);
+
CU_ASSERT_EQUAL(WRAP_CALL(args_set), 0);
CU_ASSERT_EQUAL(WRAP_CALL(args_status), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: npm\n\
Alternatives: 3\n\
Priority: 10~ Target: /usr/bin/npm10\n\
@@ -349,10 +357,16 @@
Group: node, npm\n\
Priority: 30 Target: /usr/bin/npm30\n\
Group: node, npm\n\
-"), 0);
+");
+ manpages = libalts_get_default_manpages("npm");
+ CU_ASSERT_STRING_EQUAL(manpages[0], "npm10.1");
+ CU_ASSERT_EQUAL(manpages[1], NULL);
+ free(manpages[0]);
+ free(manpages);
+
CU_ASSERT_EQUAL(WRAP_CALL(args_set_system), 0);
CU_ASSERT_EQUAL(WRAP_CALL(args_status), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: npm\n\
Alternatives: 3\n\
Priority: 10~ Target: /usr/bin/npm10\n\
@@ -361,10 +375,11 @@
Group: node, npm\n\
Priority: 30 Target: /usr/bin/npm30\n\
Group: node, npm\n\
-"), 0);
+");
+
CU_ASSERT_EQUAL(WRAP_CALL(args_reset), 0);
CU_ASSERT_EQUAL(WRAP_CALL(args_status), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: npm\n\
Alternatives: 3\n\
Priority: 10! Target: /usr/bin/npm10\n\
@@ -373,10 +388,16 @@
Group: node, npm\n\
Priority: 30 Target: /usr/bin/npm30\n\
Group: node, npm\n\
-"), 0);
+");
+ manpages = libalts_get_default_manpages("npm");
+ CU_ASSERT_STRING_EQUAL(manpages[0], "npm10.1");
+ CU_ASSERT_EQUAL(manpages[1], NULL);
+ free(manpages[0]);
+ free(manpages);
+
CU_ASSERT_EQUAL(WRAP_CALL(args_reset_system), 0);
CU_ASSERT_EQUAL(WRAP_CALL(args_status), 0);
- CU_ASSERT_EQUAL(strcmp(stdout_buffer,
+ CU_ASSERT_STRING_EQUAL(stdout_buffer,
"Binary: npm\n\
Alternatives: 3\n\
Priority: 10 Target: /usr/bin/npm10\n\
@@ -385,12 +406,59 @@
Group: node, npm\n\
Priority: 30* Target: /usr/bin/npm30\n\
Group: node, npm\n\
-"), 0);
+");
+ manpages = libalts_get_default_manpages("npm");
+ CU_ASSERT_STRING_EQUAL(manpages[0], "npm30.1");
+ CU_ASSERT_EQUAL(manpages[1], NULL);
+ free(manpages[0]);
+ free(manpages);
+}
+
+
+static int setupExecTests()
+{
+ setConfigDirectory(CONFIG_DIR "/../test_exec");
+ //setenv("LIBALTERNATIVES_DEBUG", "1", 1);
+ return setupTests();
+}
+
+static int cleanupExecTests()
+{
+ setConfigDirectory(CONFIG_DIR);
+ //unsetenv("LIBALTERNATIVES_DEBUG");
+ return cleanupTests();
+}
+
+static void failedExecOfUnknown()
+{
+ char *command_not_found[] = { "/usr/some/something_not_there",
"-param", NULL };
+ CU_ASSERT_EQUAL(libalts_exec_default(command_not_found), -1);
+ CU_ASSERT_EQUAL(errno, ENOENT);
+}
+
+static void validExecCommand()
+{
+ char *command_false[] = { "/usr/path/test42", NULL };
+ pid_t child_pid = fork();
+ int status = 1000;
+
+ switch (child_pid) {
+ case -1:
+ CU_ASSERT_FATAL(-1);
+ return;
+ case 0:
+ libalts_exec_default(command_false);
+ exit(100);
+ default:
+ CU_ASSERT_EQUAL_FATAL(wait(&status), child_pid);
+ CU_ASSERT(WIFEXITED(status));
+ CU_ASSERT_EQUAL(WEXITSTATUS(status), 1);
+ }
}
void addAlternativesAppTests()
{
- CU_pSuite suite = CU_add_suite_with_setup_and_teardown("Alternative App
Tests", setupTests, removeIOFiles, storeErrorCount, printOutputOnErrorIncrease);
+ CU_pSuite suite = CU_add_suite_with_setup_and_teardown("Alternative App
Tests", setupTests, cleanupTests, storeErrorCount, printOutputOnErrorIncrease);
CU_ADD_TEST(suite, helpScreen);
CU_ADD_TEST(suite, unknownParamsHelpScreen);
CU_ADD_TEST(suite, moreThanOneCommand);
@@ -403,4 +471,8 @@
CU_ADD_TEST(suite, listSpecificProgramInAGroup);
CU_ADD_TEST(suite, showErrorsForInconsistentGroups);
CU_ADD_TEST(suite, setPrioritiesAffectEntireGroup);
+
+ suite = CU_add_suite_with_setup_and_teardown("Default Exec Tests",
setupExecTests, cleanupExecTests, storeErrorCount, printOutputOnErrorIncrease);
+ CU_ADD_TEST(suite, failedExecOfUnknown);
+ CU_ADD_TEST(suite, validExecCommand);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libalternatives-v1.0/test/test_exec/test42/10.conf
new/libalternatives-v1.1/test/test_exec/test42/10.conf
--- old/libalternatives-v1.0/test/test_exec/test42/10.conf 1970-01-01
01:00:00.000000000 +0100
+++ new/libalternatives-v1.1/test/test_exec/test42/10.conf 2021-06-21
23:57:16.000000000 +0200
@@ -0,0 +1,2 @@
+man=test
+binary=/usr/bin/false
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libalternatives-v1.0/test/test_exec/test42/8.conf
new/libalternatives-v1.1/test/test_exec/test42/8.conf
--- old/libalternatives-v1.0/test/test_exec/test42/8.conf 1970-01-01
01:00:00.000000000 +0100
+++ new/libalternatives-v1.1/test/test_exec/test42/8.conf 2021-06-21
23:57:16.000000000 +0200
@@ -0,0 +1,2 @@
+binary=/usr/bin/true
+man=testing man
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libalternatives-v1.0/utils/list_binaries.c
new/libalternatives-v1.1/utils/list_binaries.c
--- old/libalternatives-v1.0/utils/list_binaries.c 2021-06-09
16:10:17.000000000 +0200
+++ new/libalternatives-v1.1/utils/list_binaries.c 2021-06-21
23:57:16.000000000 +0200
@@ -71,6 +71,7 @@
for (size_t i=0; i<*bin_size; i++) {
struct InstalledBinaryData *binary = (*binaries_ptr) + i;
binary->binary_name = binary_names_array[i];
+ binary->alts = NULL;
if (libalts_load_binary_priorities(binary->binary_name,
&binary->priorities, &binary->num_priorities) != 0) {
if (errno == ENOENT) {
@@ -200,6 +201,7 @@
free(data->priorities);
for (size_t i=0; i<data->num_priorities; i++)
libalts_free_alternatives_ptr(&data->alts[i]);
+ free(data->alts);
}
int printInstalledBinariesAndTheirOverrideStates(const char *program)
@@ -221,7 +223,6 @@
printInstalledBinaryAlternatives(binaries + i, errors,
n_errors);
freeInstalledBinaryDataStruct(binaries + i);
}
- free(binaries->alts);
free(binaries);
free(errors);
++++++ libalternatives.obsinfo ++++++
--- /var/tmp/diff_new_pack.5CjXgJ/_old 2021-06-25 15:00:42.104105013 +0200
+++ /var/tmp/diff_new_pack.5CjXgJ/_new 2021-06-25 15:00:42.104105013 +0200
@@ -1,5 +1,5 @@
name: libalternatives
-version: v1.0
-mtime: 1623247817
-commit: c24417e035114db2f84a31a80bfaeedb8df234a0
+version: v1.1
+mtime: 1624312636
+commit: 1946f71a5240b605e558f9f2c29333088f07bcf5