summaryrefslogtreecommitdiff
path: root/isofs/rr.c
diff options
context:
space:
mode:
Diffstat (limited to 'isofs/rr.c')
-rw-r--r--isofs/rr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/isofs/rr.c b/isofs/rr.c
index 20fea897..b069a831 100644
--- a/isofs/rr.c
+++ b/isofs/rr.c
@@ -363,10 +363,10 @@ rrip_work (struct dirrect *dr, struct rrip_lookup *rr,
if (rr->target == 0)
{
rr->target = malloc (cnamelen * 2);
- targused = cnamelen;
+ targused = 0;
targalloced = cnamelen * 2;
}
- else if (targused + cnamelen > targalloced)
+ else while (targused + cnamelen > targalloced)
rr->target = realloc (rr->target, targalloced *= 2);
assert (rr->target);
@@ -435,6 +435,8 @@ rrip_work (struct dirrect *dr, struct rrip_lookup *rr,
else
add_comp ("", 1);
+ rr->valid |= VALID_SL;
+
free (slbuf);
goto next_field;
}