mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-25 05:39:18 +00:00
fix direct capture file writing race condition
fixes #4612 Closes #4634 // FREEBIE
This commit is contained in:
committed by
Moxie Marlinspike
parent
3bfb123b33
commit
a04e737526
@@ -4,7 +4,6 @@ import android.content.ContentUris;
|
||||
import android.content.Context;
|
||||
import android.content.UriMatcher;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.util.Log;
|
||||
|
||||
@@ -61,10 +60,9 @@ public class PersistentBlobProvider {
|
||||
}
|
||||
|
||||
public Uri create(@NonNull MasterSecret masterSecret,
|
||||
@NonNull Recipients recipients,
|
||||
@NonNull byte[] imageBytes)
|
||||
{
|
||||
final long id = generateId(recipients);
|
||||
final long id = System.currentTimeMillis();
|
||||
cache.put(id, imageBytes);
|
||||
return create(masterSecret, new ByteArrayInputStream(imageBytes), id);
|
||||
}
|
||||
@@ -108,8 +106,12 @@ public class PersistentBlobProvider {
|
||||
|
||||
public boolean delete(@NonNull Uri uri) {
|
||||
switch (MATCHER.match(uri)) {
|
||||
case MATCH: return getFile(ContentUris.parseId(uri)).delete();
|
||||
default: return new File(uri.getPath()).delete();
|
||||
case MATCH:
|
||||
long id = ContentUris.parseId(uri);
|
||||
cache.remove(id);
|
||||
return getFile(ContentUris.parseId(uri)).delete();
|
||||
default:
|
||||
return new File(uri.getPath()).delete();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user