From 4e21986e59d09c0dababef47821f9da1da4bc816 Mon Sep 17 00:00:00 2001 From: Yurii Zubrytskyi Date: Thu, 9 Apr 2020 18:24:51 -0700 Subject: [PATCH] [incfs] Fix a leaked pending_reads FD Bug: 153670585 Test: adb install/uninstall a dozen times Change-Id: Iac05b5dc3792e55c2f103ac08bdd734b3b398882 --- .../service/dataloader/DataLoaderService.java | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/core/java/android/service/dataloader/DataLoaderService.java b/core/java/android/service/dataloader/DataLoaderService.java index c047dc0d07c70..60373ace2d8a5 100644 --- a/core/java/android/service/dataloader/DataLoaderService.java +++ b/core/java/android/service/dataloader/DataLoaderService.java @@ -34,6 +34,8 @@ import android.os.ParcelFileDescriptor; import android.util.ExceptionUtils; import android.util.Slog; +import libcore.io.IoUtils; + import java.io.IOException; import java.util.Collection; @@ -115,22 +117,10 @@ public abstract class DataLoaderService extends Service { destroy(id); throw new RuntimeException(ex); } finally { - // Closing FDs. if (control.incremental != null) { - if (control.incremental.cmd != null) { - try { - control.incremental.cmd.close(); - } catch (IOException e) { - Slog.e(TAG, "Failed to close IncFs CMD file descriptor " + e); - } - } - if (control.incremental.log != null) { - try { - control.incremental.log.close(); - } catch (IOException e) { - Slog.e(TAG, "Failed to close IncFs LOG file descriptor " + e); - } - } + IoUtils.closeQuietly(control.incremental.cmd); + IoUtils.closeQuietly(control.incremental.pendingReads); + IoUtils.closeQuietly(control.incremental.log); } } }