From 5a7508ab24f7a0768c5ca0a7ba1b74bc4eb8d938 Mon Sep 17 00:00:00 2001 From: Yura Yaroshevich Date: Tue, 19 Dec 2017 12:18:41 +0300 Subject: [PATCH] Fixed NPE inside org.webrtc.Camera1Session.create MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On some devices `android.hardware.Camera.open` returns null instead of raising exception. It causes `NPE` inside `Camera1Session.create` when method `setPreviewTexture` is invoked on local variable `camera`, which is `null`. Bug: webrtc:8658 Change-Id: Ic65b4aef2c0b8b65735a9db02433b536bfe92ddd Reviewed-on: https://webrtc-review.googlesource.com/33620 Reviewed-by: Sami Kalliomäki Commit-Queue: Sami Kalliomäki Cr-Commit-Position: refs/heads/master@{#21352} --- AUTHORS | 1 + sdk/android/src/java/org/webrtc/Camera1Session.java | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/AUTHORS b/AUTHORS index 121838fc23..abf8b5b853 100644 --- a/AUTHORS +++ b/AUTHORS @@ -55,6 +55,7 @@ Vicken Simonian Victor Costan Xiaohong Xu Xiaolei Yu +Yura Yaroshevich Hans Knoechel Korniltsev Anatoly diff --git a/sdk/android/src/java/org/webrtc/Camera1Session.java b/sdk/android/src/java/org/webrtc/Camera1Session.java index 61a51c940a..c27b4fc12d 100644 --- a/sdk/android/src/java/org/webrtc/Camera1Session.java +++ b/sdk/android/src/java/org/webrtc/Camera1Session.java @@ -69,6 +69,12 @@ class Camera1Session implements CameraSession { return; } + if (camera == null) { + callback.onFailure(FailureType.ERROR, + "android.hardware.Camera.open returned null for camera id = " + cameraId); + return; + } + try { camera.setPreviewTexture(surfaceTextureHelper.getSurfaceTexture()); } catch (IOException e) {