summaryrefslogtreecommitdiffabout
path: root/src
authorSergey Poznyakoff <gray@gnu.org>2016-02-21 08:15:50 (GMT)
committer Sergey Poznyakoff <gray@gnu.org>2016-02-21 08:17:20 (GMT)
commitda6e295140fc1a1ef56db1c6f792e86793f7f2b1 (patch) (side-by-side diff)
tree06a44c125b858f0b498555d722d2ab8f2f85fbf5 /src
parent5ba46aeec2900c23a0c260093daf56180f1180c0 (diff)
downloadpies-da6e295140fc1a1ef56db1c6f792e86793f7f2b1.tar.gz
pies-da6e295140fc1a1ef56db1c6f792e86793f7f2b1.tar.bz2
Bugfix
* src/comp.c (component_config_commit): Correctly handle empty list of components.
Diffstat (limited to 'src') (more/less context) (ignore whitespace changes)
-rw-r--r--src/comp.c10
-rw-r--r--src/progman.c1
2 files changed, 9 insertions, 2 deletions
diff --git a/src/comp.c b/src/comp.c
index b340abe..5ddac36 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -466,9 +466,15 @@ component_config_commit (void)
/* Count available components and allocate array for them */
for (comp = list->head, i = 0; comp; comp = comp->next, i++)
- /* FIXME: component_compute_prereq (comp) */;
+ /* nothing */;
- comp_array = grecs_realloc (comp_array, i * sizeof (comp_array[0]));
+ if (i == 0)
+ {
+ free (comp_array);
+ comp_array = NULL;
+ }
+ else
+ comp_array = grecs_realloc (comp_array, i * sizeof (comp_array[0]));
comp_count = i;
/* Rearrange components, registering prog entries for the new ones */
diff --git a/src/progman.c b/src/progman.c
index 52c875f..a6202f3 100644
--- a/src/progman.c
+++ b/src/progman.c
@@ -174,6 +174,7 @@ destroy_prog (struct prog **pp)
component_ref_decr (p->v.p.comp);
if (p->v.p.status == status_listener && p->v.p.socket != -1)
deregister_socket (p->v.p.socket);
+ /* FIXME: Remove also all dependent progs (esp. tcpmux) */
break;
case TYPE_REDIRECTOR:

Return to:

Send suggestions and report system problems to the System administrator.