Kaynağa Gözat

Drop path validation

master
Arun Prakash Jana 5 yıl önce
ebeveyn
işleme
1224270104
Veri tabanında bu imza için bilinen anahtar bulunamadı GPG Anahtar Kimliği: A75979F35C080412
1 değiştirilmiş dosya ile 8 ekleme ve 6 silme
  1. +8
    -6
      src/nnn.c

+ 8
- 6
src/nnn.c Dosyayı Görüntüle

@@ -2918,7 +2918,7 @@ static bool parsekvpair(kv **arr, char **envcpy, const uchar id, ushort *items)
if (!maxitems)
return FALSE;

*arr = calloc(maxitems, sizeof(kv));
*arr = malloc(maxitems * sizeof(kv));
if (!arr) {
xerror();
return FALSE;
@@ -2966,9 +2966,10 @@ static bool parsekvpair(kv **arr, char **envcpy, const uchar id, ushort *items)
if (kvarr[i - 1].val && *kvarr[i - 1].val == '\0')
return FALSE;

for (i = 0; i < maxitems && kvarr[i].key; ++i)
if (strlen(kvarr[i].val) >= PATH_MAX)
return FALSE;
/* Redundant check so far, all paths will get evaluated and fail */
//for (i = 0; i < maxitems && kvarr[i].key; ++i)
// if (strlen(kvarr[i].val) >= PATH_MAX)
// return FALSE;

*items = maxitems;
return TRUE;
@@ -2980,7 +2981,7 @@ static bool parsekvpair(kv **arr, char **envcpy, const uchar id, ushort *items)
* NULL is returned in case of no match, path resolution failure etc.
* buf would be modified, so check return value before access
*/
static char *get_kv_val(kv *kvarr, char *buf, int key, uchar max, bool path)
static char *get_kv_val(kv *kvarr, char *buf, int key, uchar max, bool bookmark)
{
int r = 0;

@@ -2989,7 +2990,8 @@ static char *get_kv_val(kv *kvarr, char *buf, int key, uchar max, bool path)

for (; kvarr[r].key && r < max; ++r) {
if (kvarr[r].key == key) {
if (!path)
/* Do not allocate new memory for plugin */
if (!bookmark)
return kvarr[r].val;

if (kvarr[r].val[0] == '~') {


Yükleniyor…
İptal
Kaydet