diff options
Diffstat (limited to 'services/java')
| -rw-r--r-- | services/java/com/android/server/WindowManagerService.java | 15 | ||||
| -rw-r--r-- | services/java/com/android/server/sip/SipService.java | 15 |
2 files changed, 20 insertions, 10 deletions
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java index 421d1c4..9b9d950 100644 --- a/services/java/com/android/server/WindowManagerService.java +++ b/services/java/com/android/server/WindowManagerService.java @@ -4808,6 +4808,8 @@ public class WindowManagerService extends IWindowManager.Stub Parcel data = null; Parcel reply = null; + BufferedWriter out = null; + // Any uncaught exception will crash the system process try { // Find the hashcode of the window @@ -4845,6 +4847,12 @@ public class WindowManagerService extends IWindowManager.Stub reply.readException(); + if (!client.isOutputShutdown()) { + out = new BufferedWriter(new OutputStreamWriter(client.getOutputStream())); + out.write("DONE\n"); + out.flush(); + } + } catch (Exception e) { Slog.w(TAG, "Could not send command " + command + " with parameters " + parameters, e); success = false; @@ -4855,6 +4863,13 @@ public class WindowManagerService extends IWindowManager.Stub if (reply != null) { reply.recycle(); } + if (out != null) { + try { + out.close(); + } catch (IOException e) { + + } + } } return success; diff --git a/services/java/com/android/server/sip/SipService.java b/services/java/com/android/server/sip/SipService.java index 1142136..3dcaff6 100644 --- a/services/java/com/android/server/sip/SipService.java +++ b/services/java/com/android/server/sip/SipService.java @@ -32,6 +32,7 @@ import android.net.sip.SipProfile; import android.net.sip.SipSessionAdapter; import android.net.sip.SipSessionState; import android.net.wifi.WifiManager; +import android.os.Binder; import android.os.Bundle; import android.os.RemoteException; import android.os.SystemClock; @@ -97,6 +98,7 @@ public final class SipService extends ISipService.Stub { } public void open(SipProfile localProfile) { + localProfile.setCallingUid(Binder.getCallingUid()); if (localProfile.getAutoRegistration()) { openToReceiveCalls(localProfile); } else { @@ -119,6 +121,7 @@ public final class SipService extends ISipService.Stub { public synchronized void open3(SipProfile localProfile, String incomingCallBroadcastAction, ISipSessionListener listener) { + localProfile.setCallingUid(Binder.getCallingUid()); if (TextUtils.isEmpty(incomingCallBroadcastAction)) { throw new RuntimeException( "empty broadcast action for incoming call"); @@ -165,6 +168,7 @@ public final class SipService extends ISipService.Stub { public synchronized ISipSession createSession(SipProfile localProfile, ISipSessionListener listener) { + localProfile.setCallingUid(Binder.getCallingUid()); if (!mConnected) return null; try { SipSessionGroupExt group = createGroup(localProfile); @@ -362,16 +366,7 @@ public final class SipService extends ISipService.Stub { private SipProfile duplicate(SipProfile p) { try { - return new SipProfile.Builder(p.getUserName(), p.getSipDomain()) - .setProfileName(p.getProfileName()) - .setPassword("*") - .setPort(p.getPort()) - .setProtocol(p.getProtocol()) - .setOutboundProxy(p.getProxyAddress()) - .setSendKeepAlive(p.getSendKeepAlive()) - .setAutoRegistration(p.getAutoRegistration()) - .setDisplayName(p.getDisplayName()) - .build(); + return new SipProfile.Builder(p).setPassword("*").build(); } catch (Exception e) { Log.wtf(TAG, "duplicate()", e); throw new RuntimeException("duplicate profile", e); |
