Fix NullPointerException on NsdService
The NsdService will throw a NPE if a new client is registered with a null INsdManagerCallback object. To avoid this, perform a null check before registering a new client and throw an IllegalArgumentException if the callback is null. Bug: 293285797 Test: atest FrameworksNetTests Change-Id: Id61e27873591031c3fe383879aee0d40eebc08b3
This commit is contained in:
@@ -1920,11 +1920,14 @@ public class NsdService extends INsdManager.Stub {
|
||||
@Override
|
||||
public INsdServiceConnector connect(INsdManagerCallback cb, boolean useJavaBackend) {
|
||||
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.INTERNET, "NsdService");
|
||||
final int uid = mDeps.getCallingUid();
|
||||
if (cb == null) {
|
||||
throw new IllegalArgumentException("Unknown client callback from uid=" + uid);
|
||||
}
|
||||
if (DBG) Log.d(TAG, "New client connect. useJavaBackend=" + useJavaBackend);
|
||||
final INsdServiceConnector connector = new NsdServiceConnector();
|
||||
mNsdStateMachine.sendMessage(mNsdStateMachine.obtainMessage(NsdManager.REGISTER_CLIENT,
|
||||
new ConnectorArgs((NsdServiceConnector) connector, cb, useJavaBackend,
|
||||
mDeps.getCallingUid())));
|
||||
new ConnectorArgs((NsdServiceConnector) connector, cb, useJavaBackend, uid)));
|
||||
return connector;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user