diff options
author | sai.shwethas <sai.shwethas@nxp.com> | 2023-04-12 15:58:12 +0530 |
---|---|---|
committer | Sai Shweta S <sai.shwethas@nxp.com> | 2023-04-12 11:36:42 +0000 |
commit | fc06f65914dddd2c0a29e9f5fd4be960602f9128 (patch) | |
tree | b91518e9fee94c76e51025bb6c73f944acecc384 | |
parent | afd77483e1ef526d7e6edbfe1505aed8d10d1124 (diff) | |
download | SecureElement-fc06f65914dddd2c0a29e9f5fd4be960602f9128.tar.gz |
Fix warnings from static analysis tool.
1.CALL_SUPER:
SecureElementService.java: onCreate(),onDestroy()
Call super class implementation.
2.GUARDED_BY_VIOLATION:
Terminal.java: reset()
Hold lock before accessing "mSEHal12" and "mAidlHal".
Bug: 275291562
Test: Build ok, Manual test CTS SE tests
Change-Id: Ic227266fe768dd579483e5632f62cf1b41c1e7e4
-rw-r--r-- | src/com/android/se/SecureElementService.java | 2 | ||||
-rw-r--r-- | src/com/android/se/Terminal.java | 38 |
2 files changed, 22 insertions, 18 deletions
diff --git a/src/com/android/se/SecureElementService.java b/src/com/android/se/SecureElementService.java index 6286228..47d3103 100644 --- a/src/com/android/se/SecureElementService.java +++ b/src/com/android/se/SecureElementService.java @@ -207,6 +207,7 @@ public final class SecureElementService extends Service { @Override public void onCreate() { + super.onCreate(); Log.i(mTag, Thread.currentThread().getName() + " onCreate"); initialize(); createTerminals(); @@ -229,6 +230,7 @@ public final class SecureElementService extends Service { * close all the channels. */ public void onDestroy() { + super.onDestroy(); Log.i(mTag, "onDestroy"); for (Terminal terminal : mTerminals.values()) { terminal.closeChannels(); diff --git a/src/com/android/se/Terminal.java b/src/com/android/se/Terminal.java index cc4c717..aba77bb 100644 --- a/src/com/android/se/Terminal.java +++ b/src/com/android/se/Terminal.java @@ -892,30 +892,32 @@ public class Terminal { * Reset the Secure Element. Return true if success, false otherwise. */ public boolean reset() { - if (mSEHal12 == null && mAidlHal == null) { - return false; - } - mContext.enforceCallingOrSelfPermission( + synchronized (mLock) { + if (mSEHal12 == null && mAidlHal == null) { + return false; + } + mContext.enforceCallingOrSelfPermission( android.Manifest.permission.SECURE_ELEMENT_PRIVILEGED_OPERATION, "Need SECURE_ELEMENT_PRIVILEGED_OPERATION permission"); - try { - if (mAidlHal != null) { - mAidlHal.reset(); - return true; - } else { - byte status = mSEHal12.reset(); - // Successfully trigger reset. HAL service should send onStateChange - // after secure element reset and initialization process complete - if (status == SecureElementStatus.SUCCESS) { + try { + if (mAidlHal != null) { + mAidlHal.reset(); return true; + } else { + byte status = mSEHal12.reset(); + // Successfully trigger reset. HAL service should send onStateChange + // after secure element reset and initialization process complete + if (status == SecureElementStatus.SUCCESS) { + return true; + } + Log.e(mTag, "Error resetting terminal " + mName); } - Log.e(mTag, "Error resetting terminal " + mName); + } catch (ServiceSpecificException e) { + Log.e(mTag, "Exception in reset()" + e); + } catch (RemoteException e) { + Log.e(mTag, "Exception in reset()" + e); } - } catch (ServiceSpecificException e) { - Log.e(mTag, "Exception in reset()" + e); - } catch (RemoteException e) { - Log.e(mTag, "Exception in reset()" + e); } return false; } |