From 5575f5d3ff0323464a32ec8ca3078be063bbe95b Mon Sep 17 00:00:00 2001 From: kiwikodes <81617711+kiwikodes@users.noreply.github.com> Date: Sun, 30 Jun 2024 23:33:28 +1200 Subject: [PATCH 1/2] Truncating buffer to its true size --- .../java/org/dynmap/storage/aws_s3/AWSS3MapStorage.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DynmapCore/src/main/java/org/dynmap/storage/aws_s3/AWSS3MapStorage.java b/DynmapCore/src/main/java/org/dynmap/storage/aws_s3/AWSS3MapStorage.java index 577ed2fc2..3a5794323 100644 --- a/DynmapCore/src/main/java/org/dynmap/storage/aws_s3/AWSS3MapStorage.java +++ b/DynmapCore/src/main/java/org/dynmap/storage/aws_s3/AWSS3MapStorage.java @@ -140,7 +140,7 @@ public boolean write(long hash, BufferOutputStream encImage, long timestamp) { else { PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType(map.getImageFormat().getEncoding().getContentType()) .addMetadata("x-dynmap-hash", Long.toHexString(hash)).addMetadata("x-dynmap-ts", Long.toString(timestamp)).build(); - s3.putObject(req, RequestBody.fromBytes(encImage.buf)); + s3.putObject(req, RequestBody.fromBytes(encImage.buf, encImage.len)); } done = true; } catch (S3Exception x) { @@ -529,7 +529,7 @@ public boolean setPlayerFaceImage(String playername, FaceType facetype, } else { PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType("image/png").build(); - s3.putObject(req, RequestBody.fromBytes(encImage.buf)); + s3.putObject(req, RequestBody.fromBytes(encImage.buf, encImage.len)); } done = true; } catch (S3Exception x) { @@ -582,7 +582,7 @@ public boolean setMarkerImage(String markerid, BufferOutputStream encImage) { } else { PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType("image/png").build(); - s3.putObject(req, RequestBody.fromBytes(encImage.buf)); + s3.putObject(req, RequestBody.fromBytes(encImage.buf, encImage.len)); } done = true; } catch (S3Exception x) { @@ -745,7 +745,7 @@ else if (fileid.endsWith(".js")) { ct = "application/x-javascript"; } PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType(ct).build(); - s3.putObject(req, RequestBody.fromBytes(content.buf)); + s3.putObject(req, RequestBody.fromBytes(content.buf, content.len)); standalone_cache.put(fileid, digest); } done = true; From c110963d3c2f61144974692b6ce9397a3d740460 Mon Sep 17 00:00:00 2001 From: kiwikodes <81617711+kiwikodes@users.noreply.github.com> Date: Mon, 1 Jul 2024 13:25:49 +1200 Subject: [PATCH 2/2] Fixed array truncation issue --- .../java/org/dynmap/storage/aws_s3/AWSS3MapStorage.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DynmapCore/src/main/java/org/dynmap/storage/aws_s3/AWSS3MapStorage.java b/DynmapCore/src/main/java/org/dynmap/storage/aws_s3/AWSS3MapStorage.java index 3a5794323..d45ac6d2f 100644 --- a/DynmapCore/src/main/java/org/dynmap/storage/aws_s3/AWSS3MapStorage.java +++ b/DynmapCore/src/main/java/org/dynmap/storage/aws_s3/AWSS3MapStorage.java @@ -140,7 +140,7 @@ public boolean write(long hash, BufferOutputStream encImage, long timestamp) { else { PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType(map.getImageFormat().getEncoding().getContentType()) .addMetadata("x-dynmap-hash", Long.toHexString(hash)).addMetadata("x-dynmap-ts", Long.toString(timestamp)).build(); - s3.putObject(req, RequestBody.fromBytes(encImage.buf, encImage.len)); + s3.putObject(req, RequestBody.fromBytes(Arrays.copyOfRange(encImage.buf, 0, encImage.len))); } done = true; } catch (S3Exception x) { @@ -529,7 +529,7 @@ public boolean setPlayerFaceImage(String playername, FaceType facetype, } else { PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType("image/png").build(); - s3.putObject(req, RequestBody.fromBytes(encImage.buf, encImage.len)); + s3.putObject(req, RequestBody.fromBytes(Arrays.copyOfRange(encImage.buf, 0, encImage.len))); } done = true; } catch (S3Exception x) { @@ -582,7 +582,7 @@ public boolean setMarkerImage(String markerid, BufferOutputStream encImage) { } else { PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType("image/png").build(); - s3.putObject(req, RequestBody.fromBytes(encImage.buf, encImage.len)); + s3.putObject(req, RequestBody.fromBytes(Arrays.copyOfRange(encImage.buf, 0, encImage.len))); } done = true; } catch (S3Exception x) { @@ -745,7 +745,7 @@ else if (fileid.endsWith(".js")) { ct = "application/x-javascript"; } PutObjectRequest req = PutObjectRequest.builder().bucketName(bucketname).key(baseKey).contentType(ct).build(); - s3.putObject(req, RequestBody.fromBytes(content.buf, content.len)); + s3.putObject(req, RequestBody.fromBytes(Arrays.copyOfRange(content.buf, 0, content.len))); standalone_cache.put(fileid, digest); } done = true;