From ac6eed7aef1ada8fce9aa20e4faea0c96c2e0883 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Thu, 12 Oct 2006 17:31:58 +0000 Subject: [PATCH] Modified structure.c --- libburn/structure.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/libburn/structure.c b/libburn/structure.c index 7d65f92..67bdcfa 100644 --- a/libburn/structure.c +++ b/libburn/structure.c @@ -158,24 +158,25 @@ int burn_session_remove_track(struct burn_session *s, struct burn_track *t) /* Find the position */ for (i = 0; i < s->tracks; i++) { - if (t == s->track[i]) + if (t == s->track[i]) { pos = i; + break; + } } if (pos == -1) return 0; /* Is it the last track? */ - if (pos != s->tracks) { - memmove(s->track[pos], s->track[pos + 1], + if (pos != s->tracks - 1) { + memmove(&s->track[pos], &s->track[pos + 1], sizeof(struct burn_track *) * (s->tracks - (pos + 1))); } s->tracks--; tmp = realloc(s->track, sizeof(struct burn_track *) * s->tracks); - if (!tmp) - return 0; - s->track = tmp; + if (tmp) + s->track = tmp; return 1; }