diff --git a/app/src/main/java/org/fdroid/fdroid/net/LocalHTTPD.java b/app/src/main/java/org/fdroid/fdroid/net/LocalHTTPD.java index d6d2f7633..7d893287d 100644 --- a/app/src/main/java/org/fdroid/fdroid/net/LocalHTTPD.java +++ b/app/src/main/java/org/fdroid/fdroid/net/LocalHTTPD.java @@ -265,7 +265,10 @@ public class LocalHTTPD extends NanoHTTPD { return (int) dataLen; } }; - fis.skip(startFrom); + long skipped = fis.skip(startFrom); + if (skipped != startFrom) { + throw new IOException("unable to skip the required " + startFrom + " bytes."); + } res = createResponse(Response.Status.PARTIAL_CONTENT, mime, fis); res.addHeader("Content-Length", String.valueOf(dataLen)); diff --git a/app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java b/app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java index dc935199f..ba2a4f518 100644 --- a/app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java +++ b/app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java @@ -303,7 +303,10 @@ public class BluetoothServer extends Thread { return (int) dataLen; } }; - fis.skip(startFrom); + long skipped = fis.skip(startFrom); + if (skipped != startFrom) { + throw new IOException("unable to skip the required " + startFrom + " bytes."); + } res = createResponse(NanoHTTPD.Response.Status.PARTIAL_CONTENT, mime, fis); res.addHeader("Content-Length", String.valueOf(dataLen));