Merge "Revert "Fix vulnerability in AttributionSource due to incorrect ..."" into tm-dev am: bc41a6529c am: 0e408f940b am: 3ab864b584

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21893030

Change-Id: I6f71226da964d1f67e5072ce162fbac4dd925d89
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Diego Vela
2023-03-08 02:31:15 +00:00
committed by Automerger Merge Worker

View File

@@ -32,7 +32,6 @@ import android.os.Process;
import android.os.UserHandle; import android.os.UserHandle;
import android.permission.PermissionManager; import android.permission.PermissionManager;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.Log;
import com.android.internal.annotations.Immutable; import com.android.internal.annotations.Immutable;
@@ -89,8 +88,6 @@ import java.util.Set;
*/ */
@Immutable @Immutable
public final class AttributionSource implements Parcelable { public final class AttributionSource implements Parcelable {
private static final String TAG = "AttributionSource";
private static final String DESCRIPTOR = "android.content.AttributionSource"; private static final String DESCRIPTOR = "android.content.AttributionSource";
private static final Binder sDefaultToken = new Binder(DESCRIPTOR); private static final Binder sDefaultToken = new Binder(DESCRIPTOR);
@@ -158,20 +155,9 @@ public final class AttributionSource implements Parcelable {
AttributionSource(@NonNull Parcel in) { AttributionSource(@NonNull Parcel in) {
this(AttributionSourceState.CREATOR.createFromParcel(in)); this(AttributionSourceState.CREATOR.createFromParcel(in));
if (!Binder.isDirectlyHandlingTransaction()) { // Since we just unpacked this object as part of it transiting a Binder
Log.e(TAG, "Unable to verify calling UID #" + mAttributionSourceState.uid + " PID #" // call, this is the perfect time to enforce that its UID and PID can be trusted
+ mAttributionSourceState.pid + " when not handling Binder transaction; " enforceCallingUidAndPid();
+ "clearing.");
mAttributionSourceState.pid = -1;
mAttributionSourceState.uid = -1;
mAttributionSourceState.packageName = null;
mAttributionSourceState.attributionTag = null;
mAttributionSourceState.next = null;
} else {
// Since we just unpacked this object as part of it transiting a Binder
// call, this is the perfect time to enforce that its UID and PID can be trusted
enforceCallingUidAndPid();
}
} }
/** @hide */ /** @hide */