Explicitly close FD binder parameters in backup/restore API calls
CloseGuard is grateful. Bug 30893100 Change-Id: Ia6bd4d88204839add59d9d245aad673d67b11bea
This commit is contained in:
@@ -35,6 +35,8 @@ import android.system.StructStat;
|
|||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import libcore.io.IoUtils;
|
||||||
|
|
||||||
import org.xmlpull.v1.XmlPullParserException;
|
import org.xmlpull.v1.XmlPullParserException;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -921,6 +923,13 @@ public abstract class BackupAgent extends ContextWrapper {
|
|||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
// we'll time out anyway, so we're safe
|
// 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) {
|
} catch (RemoteException e) {
|
||||||
// we'll time out anyway, so we're safe
|
// 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) {
|
} catch (RemoteException e) {
|
||||||
// we'll time out anyway, so we're safe
|
// 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) {
|
} catch (RemoteException e) {
|
||||||
// we'll time out anyway, so we're safe
|
// we'll time out anyway, so we're safe
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Binder.getCallingPid() != Process.myPid()) {
|
||||||
|
IoUtils.closeQuietly(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user