mozilla-bmo1233434.patch
changeset 899 44a28160de40
parent 898 1d01621f9535
child 900 91466ca5c8d9
equal deleted inserted replaced
898:1d01621f9535 899:44a28160de40
     1 
       
     2 # HG changeset patch
       
     3 # User Aidin Gharibnavaz <aidin@aidinhut.com>
       
     4 # Date 1450550460 -12600
       
     5 # Node ID 07ec362866977f37e638fc88e3079621fd7aef96
       
     6 # Parent  cb66ffeb6725e8344818e8e2f707ae2eaeb953b4
       
     7 Bug 1233434 - Fixing download failure on a multi-user GNU/Linux machine. r?bagder
       
     8 
       
     9 diff -r cb66ffeb6725 -r 07ec36286697 uriloader/exthandler/nsExternalHelperAppService.cpp
       
    10 --- a/uriloader/exthandler/nsExternalHelperAppService.cpp	Tue Dec 15 14:45:06 2015 +0100
       
    11 +++ b/uriloader/exthandler/nsExternalHelperAppService.cpp	Sat Dec 19 22:11:00 2015 +0330
       
    12 @@ -416,12 +416,12 @@
       
    13      const char* userName = PR_GetEnv("USERNAME");
       
    14      if (!userName || !*userName) {
       
    15        userName = PR_GetEnv("USER");
       
    16 -      if (!userName || !*userName) {
       
    17 -        userName = PR_GetEnv("LOGNAME");
       
    18 -      }
       
    19 -      else {
       
    20 -        userName = "mozillaUser";
       
    21 -      }
       
    22 +    }
       
    23 +    if (!userName || !*userName) {
       
    24 +      userName = PR_GetEnv("LOGNAME");
       
    25 +    }
       
    26 +    if (!userName || !*userName) {
       
    27 +      userName = "mozillaUser";
       
    28      }
       
    29  
       
    30      nsAutoString userDir;
       
    31 @@ -447,7 +447,12 @@
       
    32          rv = finalPath->GetPermissions(&permissions);
       
    33          NS_ENSURE_SUCCESS(rv, rv);
       
    34  
       
    35 -        if (permissions == PR_IRWXU) {
       
    36 +        // Ensuring the path is writable by the current user.
       
    37 +        bool isWritable;
       
    38 +        rv = finalPath->IsWritable(&isWritable);
       
    39 +        NS_ENSURE_SUCCESS(rv, rv);
       
    40 +
       
    41 +        if (permissions == PR_IRWXU && isWritable) {
       
    42            dir = finalPath;
       
    43            break;
       
    44          }
       
    45