这是indexloc提供的服务,不要输入任何密码
Skip to content

Commit 950f9be

Browse files
Changed|Fixed: Fix potential NullPointerException in StorageGetAPI and use FileUtils for missing permissions check
1 parent cc186d0 commit 950f9be

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

app/src/main/java/com/termux/api/apis/StorageGetAPI.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
import com.termux.api.TermuxApiReceiver;
1212
import com.termux.api.util.ResultReturner;
1313
import com.termux.shared.data.IntentUtils;
14+
import com.termux.shared.errors.Error;
15+
import com.termux.shared.file.FileUtils;
1416
import com.termux.shared.logger.Logger;
1517
import com.termux.shared.termux.TermuxConstants;
18+
import com.termux.shared.termux.file.TermuxFileUtils;
1619

17-
import java.io.File;
1820
import java.io.FileOutputStream;
1921
import java.io.IOException;
2022
import java.io.InputStream;
@@ -31,13 +33,24 @@ public static void onReceive(TermuxApiReceiver apiReceiver, final Context contex
3133

3234
ResultReturner.returnData(apiReceiver, intent, out -> {
3335
final String fileExtra = intent.getStringExtra("file");
34-
if (fileExtra == null || !new File(fileExtra).getParentFile().canWrite()) {
35-
out.println("ERROR: Not a writable folder: " + fileExtra);
36+
if (fileExtra == null || fileExtra.isEmpty()) {
37+
out.println("ERROR: " + "File path not passed");
38+
39+
return;
40+
}
41+
42+
// Get canonical path of fileExtra
43+
String filePath = TermuxFileUtils.getCanonicalPath(fileExtra, null, true);
44+
String fileParentDirPath = FileUtils.getFileBasename(filePath);
45+
46+
Error error = FileUtils.checkMissingFilePermissions("file parent directory", fileParentDirPath, "rw-", true);
47+
if (error != null) {
48+
out.println("ERROR: " + error.getErrorLogString());
3649
return;
3750
}
3851

3952
Intent intent1 = new Intent(context, StorageActivity.class);
40-
intent1.putExtra(FILE_EXTRA, fileExtra);
53+
intent1.putExtra(FILE_EXTRA, filePath);
4154
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
4255
context.startActivity(intent1);
4356
});

0 commit comments

Comments
 (0)