X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=etc%2Fafpd%2Fvolume.c;h=8867715599df2264df5ddb53a0a6b328b07e2f8e;hb=49759493eb1e3af9cba918721b0f945dd153a18c;hp=8798635a07678150921e3b5139f54ec942269b73;hpb=1ae3c8a1f36c4f9d2a5272a0e700463817aaff1b;p=netatalk.git diff --git a/etc/afpd/volume.c b/etc/afpd/volume.c index 8798635a..88677155 100644 --- a/etc/afpd/volume.c +++ b/etc/afpd/volume.c @@ -176,13 +176,18 @@ static int get_tm_used(struct vol * restrict vol) EC_NULL_LOG( infoplist = bformat("%s/%s/%s", vol->v_path, entry->d_name, "Info.plist") ); - if ((bandsize = get_tm_bandsize(cfrombstr(infoplist))) == -1) + if ((bandsize = get_tm_bandsize(cfrombstr(infoplist))) == -1) { + bdestroy(infoplist); continue; + } EC_NULL_LOG( bandsdir = bformat("%s/%s/%s/", vol->v_path, entry->d_name, "bands") ); - if ((links = get_tm_bands(cfrombstr(bandsdir))) == -1) + if ((links = get_tm_bands(cfrombstr(bandsdir))) == -1) { + bdestroy(infoplist); + bdestroy(bandsdir); continue; + } used += (links - 1) * bandsize; LOG(log_debug, logtype_afpd, "getused(\"%s\"): bands: %" PRIu64 " bytes",