Explicitly close FD binder parameters in backup/restore API calls

am: 91bb0e5cca

Change-Id: Ibdba35d9c4e17180a7593966b4d54d6fb9c03f02
This commit is contained in:
Christopher Tate
2016-10-06 20:10:56 +00:00
committed by android-build-merger

View File

@@ -35,6 +35,8 @@ import android.system.StructStat;
import android.util.ArraySet;
import android.util.Log;
import libcore.io.IoUtils;
import org.xmlpull.v1.XmlPullParserException;
import java.io.File;
@@ -921,6 +923,13 @@ public abstract class BackupAgent extends ContextWrapper {
} catch (RemoteException e) {
// we'll time out anyway, so we're safe
}
// Don't close the fd out from under the system service if this was local
if (Binder.getCallingPid() != Process.myPid()) {
IoUtils.closeQuietly(oldState);
IoUtils.closeQuietly(data);
IoUtils.closeQuietly(newState);
}
}
}
@@ -951,6 +960,11 @@ public abstract class BackupAgent extends ContextWrapper {
} catch (RemoteException e) {
// we'll time out anyway, so we're safe
}
if (Binder.getCallingPid() != Process.myPid()) {
IoUtils.closeQuietly(data);
IoUtils.closeQuietly(newState);
}
}
}
@@ -994,6 +1008,10 @@ public abstract class BackupAgent extends ContextWrapper {
} catch (RemoteException e) {
// we'll time out anyway, so we're safe
}
if (Binder.getCallingPid() != Process.myPid()) {
IoUtils.closeQuietly(data);
}
}
}
@@ -1041,6 +1059,10 @@ public abstract class BackupAgent extends ContextWrapper {
} catch (RemoteException e) {
// we'll time out anyway, so we're safe
}
if (Binder.getCallingPid() != Process.myPid()) {
IoUtils.closeQuietly(data);
}
}
}