Changeset 18220


Ignore:
Timestamp:
Oct 13, 2012, 12:51:35 PM (8 years ago)
Author:
obi
Message:

fix filemanger security

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/plugins/filemanager/filemanager.h

    r17722 r18220  
    4141        drawscreen(filemanager2, 0, 0);
    4242        addscreenrc(filemanager1, filelist1);
    43        
     43
    4444        while(1)
    4545        {
     
    5151                if(rcret == getrcconfigint("rcexit", NULL)) break;
    5252               
    53                 if((rcret == getrcconfigint("rcgreen", NULL) || rcret == getrcconfigint("rcyellow", NULL))&& filelist1->select != NULL && ostrcmp(filelist1->select->text, "..") != 0) //copy - move
     53                if(status.security == 1)
    5454                {
    55                         file1 = createpath(filelistpath1->text, filelist1->select->text);
    56                         if(file1 != NULL)
     55                        if((rcret == getrcconfigint("rcgreen", NULL) || rcret == getrcconfigint("rcyellow", NULL))&& filelist1->select != NULL && ostrcmp(filelist1->select->text, "..") != 0) //copy - move
    5756                        {
    58                                 if(rcret == getrcconfigint("rcgreen", NULL))
     57                                file1 = createpath(filelistpath1->text, filelist1->select->text);
     58                                if(file1 != NULL)
    5959                                {
    60                                         tmpstr = ostrcat(tmpstr, _("Realy copy this file/dir?"), 1, 0);
    61                                         cmd = ostrcat(cmd, "cp -r ", 1, 0);
     60                                        if(rcret == getrcconfigint("rcgreen", NULL))
     61                                        {
     62                                                tmpstr = ostrcat(tmpstr, _("Realy copy this file/dir?"), 1, 0);
     63                                                cmd = ostrcat(cmd, "cp -r ", 1, 0);
     64                                        }
     65                                        if(rcret == getrcconfigint("rcyellow", NULL))
     66                                        {
     67                                                tmpstr = ostrcat(tmpstr, _("Realy move this file/dir?"), 1, 0);
     68                                                cmd = ostrcat(cmd, "mv ", 1, 0);
     69                                        }
     70                                       
     71                                        tmpstr = ostrcat(tmpstr, "\n\n", 1, 0);
     72                                        tmpstr = ostrcat(tmpstr, _("From"), 1, 0);
     73                                        tmpstr = ostrcat(tmpstr, ": ", 1, 0);                           
     74                                        tmpstr = ostrcat(tmpstr, file1, 1, 0);
     75                                        tmpstr = ostrcat(tmpstr, "\n", 1, 0);
     76                                        tmpstr = ostrcat(tmpstr, _("To"), 1, 0);
     77                                        tmpstr = ostrcat(tmpstr, ": ", 1, 0);
     78                                        tmpstr = ostrcat(tmpstr, filelistpath2->text, 1, 0);
     79                                        ret = textbox(_("Message"), tmpstr, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 300, 0, 0);
     80                                        free(tmpstr); tmpstr = NULL;
     81                                       
     82                                        cmd = ostrcat(cmd, file1, 1, 0);
     83                                        cmd = ostrcat(cmd, " ", 1, 0);
     84                                        cmd = ostrcat(cmd, filelistpath2->text, 1, 0);
     85                                        if(ret == 1) system(cmd);
     86                                        free(cmd); cmd = NULL;
    6287                                }
    63                                 if(rcret == getrcconfigint("rcyellow", NULL))
     88                                free(file1); file1 = NULL;
     89                               
     90                                if(ret == 1)
    6491                                {
    65                                         tmpstr = ostrcat(tmpstr, _("Realy move this file/dir?"), 1, 0);
    66                                         cmd = ostrcat(cmd, "mv ", 1, 0);
     92                                        delmarkedscreennodes(filemanager1, FILELISTDELMARK);
     93                                        delmarkedscreennodes(filemanager2, FILELISTDELMARK);
     94                                        createfilelist(filemanager1, filelist1, 0);
     95                                        createfilelist(filemanager2, filelist2, 0);
    6796                                }
    68                                
    69                                 tmpstr = ostrcat(tmpstr, "\n\n", 1, 0);
    70                                 tmpstr = ostrcat(tmpstr, _("From"), 1, 0);
    71                                 tmpstr = ostrcat(tmpstr, ": ", 1, 0);                           
    72                                 tmpstr = ostrcat(tmpstr, file1, 1, 0);
    73                                 tmpstr = ostrcat(tmpstr, "\n", 1, 0);
    74                                 tmpstr = ostrcat(tmpstr, _("To"), 1, 0);
    75                                 tmpstr = ostrcat(tmpstr, ": ", 1, 0);
    76                                 tmpstr = ostrcat(tmpstr, filelistpath2->text, 1, 0);
    77                                 ret = textbox(_("Message"), tmpstr, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 300, 0, 0);
    78                                 free(tmpstr); tmpstr = NULL;
    79                                
    80                                 cmd = ostrcat(cmd, file1, 1, 0);
    81                                 cmd = ostrcat(cmd, " ", 1, 0);
    82                                 cmd = ostrcat(cmd, filelistpath2->text, 1, 0);
    83                                 if(ret == 1) system(cmd);
    84                                 free(cmd); cmd = NULL;
    85                         }
    86                         free(file1); file1 = NULL;
    87                        
    88                         if(ret == 1)
    89                         {
    90                                 delmarkedscreennodes(filemanager1, FILELISTDELMARK);
    91                                 delmarkedscreennodes(filemanager2, FILELISTDELMARK);
    92                                 createfilelist(filemanager1, filelist1, 0);
    93                                 createfilelist(filemanager2, filelist2, 0);
    94                         }
    95                         drawscreen(filemanager, 0, 1);
    96                         drawscreen(filemanager1, 0, 1);
    97                         drawscreen(filemanager2, 0, 0);
    98                 }
    99                
    100                 if(rcret == getrcconfigint("rcred", NULL) && filelist1->select != NULL && ostrcmp(filelist1->select->text, "..") != 0) //delete
    101                 {
    102                         file1 = createpath(filelistpath1->text, filelist1->select->text);
    103                         if(file1 != NULL)
    104                         {
    105                                 tmpstr = ostrcat(tmpstr, _("Realy delete this file/dir?"), 1, 0);
    106                                 tmpstr = ostrcat(tmpstr, "\n\n", 1, 0);
    107                                 tmpstr = ostrcat(tmpstr, file1, 1, 0);
    108                                 ret = textbox(_("Message"), tmpstr, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 200, 0, 0);
    109                                 free(tmpstr); tmpstr = NULL;
    110                                
    111                                 cmd = ostrcat(cmd, "rm -r ", 1, 0);
    112                                 cmd = ostrcat(cmd, file1, 1, 0);
    113                                 if(ret == 1) system(cmd);
    114                                 free(cmd); cmd = NULL;                 
    115                         }
    116                         free(file1); file1 = NULL;
    117                        
    118                         if(ret == 1)
    119                         {
    120                                 delmarkedscreennodes(filemanager1, FILELISTDELMARK);
    121                                 delmarkedscreennodes(filemanager2, FILELISTDELMARK);
    122                                 createfilelist(filemanager1, filelist1, 0);
    123                                 createfilelist(filemanager2, filelist2, 0);
    124                         }
    125                         drawscreen(filemanager, 0, 1);
    126                         drawscreen(filemanager1, 0, 1);
    127                         drawscreen(filemanager2, 0, 0);
    128                 }
    129                
    130                 if(rcret == getrcconfigint("rcblue", NULL) && filelist1->select != NULL && ostrcmp(filelist1->select->text, "..") != 0) //view
    131                 {
    132                         file1 = createpath(filelistpath1->text, filelist1->select->text);
    133                         tmpstr = readfiletomem(file1, 0);
    134                         if(tmpstr != NULL)
    135                         {
    136                                 textbox(file1, tmpstr, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 0);
    137 
    13897                                drawscreen(filemanager, 0, 1);
    13998                                drawscreen(filemanager1, 0, 1);
    14099                                drawscreen(filemanager2, 0, 0);
    141100                        }
    142                         free(tmpstr); tmpstr = NULL;
    143                         free(file1); file1 = NULL;
     101                       
     102                        if(rcret == getrcconfigint("rcred", NULL) && filelist1->select != NULL && ostrcmp(filelist1->select->text, "..") != 0) //delete
     103                        {
     104                                file1 = createpath(filelistpath1->text, filelist1->select->text);
     105                                if(file1 != NULL)
     106                                {
     107                                        tmpstr = ostrcat(tmpstr, _("Realy delete this file/dir?"), 1, 0);
     108                                        tmpstr = ostrcat(tmpstr, "\n\n", 1, 0);
     109                                        tmpstr = ostrcat(tmpstr, file1, 1, 0);
     110                                        ret = textbox(_("Message"), tmpstr, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 200, 0, 0);
     111                                        free(tmpstr); tmpstr = NULL;
     112                                       
     113                                        cmd = ostrcat(cmd, "rm -r ", 1, 0);
     114                                        cmd = ostrcat(cmd, file1, 1, 0);
     115                                        if(ret == 1) system(cmd);
     116                                        free(cmd); cmd = NULL;                 
     117                                }
     118                                free(file1); file1 = NULL;
     119                               
     120                                if(ret == 1)
     121                                {
     122                                        delmarkedscreennodes(filemanager1, FILELISTDELMARK);
     123                                        delmarkedscreennodes(filemanager2, FILELISTDELMARK);
     124                                        createfilelist(filemanager1, filelist1, 0);
     125                                        createfilelist(filemanager2, filelist2, 0);
     126                                }
     127                                drawscreen(filemanager, 0, 1);
     128                                drawscreen(filemanager1, 0, 1);
     129                                drawscreen(filemanager2, 0, 0);
     130                        }
     131               
     132                        if(rcret == getrcconfigint("rcblue", NULL) && filelist1->select != NULL && ostrcmp(filelist1->select->text, "..") != 0) //view
     133                        {
     134                                file1 = createpath(filelistpath1->text, filelist1->select->text);
     135                                tmpstr = readfiletomem(file1, 0);
     136                                if(tmpstr != NULL)
     137                                {
     138                                        textbox(file1, tmpstr, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 600, 0, 0);
     139       
     140                                        drawscreen(filemanager, 0, 1);
     141                                        drawscreen(filemanager1, 0, 1);
     142                                        drawscreen(filemanager2, 0, 0);
     143                                }
     144                                free(tmpstr); tmpstr = NULL;
     145                                free(file1); file1 = NULL;
     146                        }
    144147                }
     148                else
     149                        textbox(_("Message"), _("Registration needed, please contact Atemio !"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 1000, 200, 0, 0);
    145150               
    146151                if(rcret == getrcconfigint("rcff", NULL) || rcret == getrcconfigint("rcfr", NULL)) //change filelist
     
    169174       
    170175        }
    171 
     176       
    172177        delmarkedscreennodes(filemanager1, FILELISTDELMARK);
    173178        delmarkedscreennodes(filemanager2, FILELISTDELMARK);
Note: See TracChangeset for help on using the changeset viewer.