From a262f05e4f639e7b14377db74ffba8b865161c5f Mon Sep 17 00:00:00 2001 From: nrosner Date: Mon, 8 Nov 2021 18:52:40 -0500 Subject: [PATCH] Avoid dereferencing encrypted_record when null --- .../examples/AwsKmsEncryptedObject.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/aws-dynamodb-encryption-java-master/examples/src/main/java/com/amazonaws/examples/AwsKmsEncryptedObject.java b/aws-dynamodb-encryption-java-master/examples/src/main/java/com/amazonaws/examples/AwsKmsEncryptedObject.java index 55139bb4d..18f281d0b 100644 --- a/aws-dynamodb-encryption-java-master/examples/src/main/java/com/amazonaws/examples/AwsKmsEncryptedObject.java +++ b/aws-dynamodb-encryption-java-master/examples/src/main/java/com/amazonaws/examples/AwsKmsEncryptedObject.java @@ -109,17 +109,19 @@ public static void encryptRecord( final Map encrypted_record = ddbClient.getItem(EXAMPLE_TABLE_NAME, itemKey).getItem(); System.out.println("Encrypted Record: " + encrypted_record); - - // Encrypted record fields change as expected - assert encrypted_record.get(STRING_FIELD_NAME).getB() - != null; // the encrypted string is stored as bytes - assert encrypted_record.get(NUMBER_FIELD_NAME).getB() - != null; // the encrypted number is stored as bytes - assert !ByteBuffer.wrap(record.getSomeBinary()) - .equals(encrypted_record.get(BINARY_FIELD_NAME).getB()); // the encrypted bytes have updated - assert record - .getLeaveMe() - .equals(encrypted_record.get(IGNORED_FIELD_NAME).getS()); // ignored field is left as is + + if(encrypted_record != null) { + // Encrypted record fields change as expected + assert encrypted_record.get(STRING_FIELD_NAME).getB() + != null; // the encrypted string is stored as bytes + assert encrypted_record.get(NUMBER_FIELD_NAME).getB() + != null; // the encrypted number is stored as bytes + assert !ByteBuffer.wrap(record.getSomeBinary()) + .equals(encrypted_record.get(BINARY_FIELD_NAME).getB()); // the encrypted bytes have updated + assert record + .getLeaveMe() + .equals(encrypted_record.get(IGNORED_FIELD_NAME).getS()); // ignored field is left as is + } // Retrieve (and decrypt) it from DynamoDB DataPoJo decrypted_record = mapper.load(DataPoJo.class, "is this", 55);