am 8776bd54: am cad60dc8: am 72bc7651: am cbb94a27: Merge "More debugging for issue #17656716: Unhandled exception in Window Manager" into lmp-dev
* commit '8776bd549ed4db7c5e2e5f487d043e8d1b53ff12': More debugging for issue #17656716: Unhandled exception in Window Manager
This commit is contained in:
@@ -387,10 +387,26 @@ public class Binder implements IBinder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void checkParcel(Parcel parcel, String msg) {
|
static void checkParcel(IBinder obj, int code, Parcel parcel, String msg) {
|
||||||
if (parcel.dataSize() >= 800*1024) {
|
if (parcel.dataSize() >= 800*1024) {
|
||||||
// Trying to send > 800k, this is way too much
|
// Trying to send > 800k, this is way too much
|
||||||
Slog.wtfStack(TAG, msg + parcel.dataSize());
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(msg);
|
||||||
|
sb.append(": on ");
|
||||||
|
sb.append(obj);
|
||||||
|
sb.append(" calling ");
|
||||||
|
sb.append(code);
|
||||||
|
sb.append(" size ");
|
||||||
|
sb.append(parcel.dataSize());
|
||||||
|
sb.append(" (data: ");
|
||||||
|
parcel.setDataPosition(0);
|
||||||
|
sb.append(parcel.readInt());
|
||||||
|
sb.append(", ");
|
||||||
|
sb.append(parcel.readInt());
|
||||||
|
sb.append(", ");
|
||||||
|
sb.append(parcel.readInt());
|
||||||
|
sb.append(")");
|
||||||
|
Slog.wtfStack(TAG, sb.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -432,7 +448,7 @@ public class Binder implements IBinder {
|
|||||||
reply.writeException(re);
|
reply.writeException(re);
|
||||||
res = true;
|
res = true;
|
||||||
}
|
}
|
||||||
checkParcel(reply, "Unreasonably large binder reply buffer: ");
|
checkParcel(this, code, reply, "Unreasonably large binder reply buffer");
|
||||||
reply.recycle();
|
reply.recycle();
|
||||||
data.recycle();
|
data.recycle();
|
||||||
return res;
|
return res;
|
||||||
@@ -448,7 +464,7 @@ final class BinderProxy implements IBinder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean transact(int code, Parcel data, Parcel reply, int flags) throws RemoteException {
|
public boolean transact(int code, Parcel data, Parcel reply, int flags) throws RemoteException {
|
||||||
Binder.checkParcel(data, "Unreasonably large binder buffer: ");
|
Binder.checkParcel(this, code, data, "Unreasonably large binder buffer");
|
||||||
return transactNative(code, data, reply, flags);
|
return transactNative(code, data, reply, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user