• R/O
  • SSH
  • HTTPS

akari: 提交


Commit MetaInfo

修訂636 (tree)
時間2020-05-02 23:27:07
作者kumaneko

Log Message

(empty log message)

Change Summary

差異

--- trunk/akari/policy_io.c (revision 635)
+++ trunk/akari/policy_io.c (revision 636)
@@ -1849,7 +1849,10 @@
18491849 */
18501850 static bool ccs_correct_path(const char *filename)
18511851 {
1852- return *filename == '/' && ccs_correct_word(filename);
1852+ const size_t len = strlen(filename);
1853+ const char *cp1 = memchr(filename, '/', len);
1854+ const char *cp2 = memchr(filename, '.', len);
1855+ return cp1 && (!cp2 || (cp1 < cp2)) && ccs_correct_word2(filename, len);
18531856 }
18541857
18551858 /**
@@ -2084,7 +2087,7 @@
20842087 goto out;
20852088 entry->transit = ccs_get_dqword(right_word);
20862089 if (!entry->transit ||
2087- (entry->transit->name[0] != '/' &&
2090+ (!ccs_correct_path(entry->transit->name) &&
20882091 !ccs_domain_def(entry->transit->name)))
20892092 goto out;
20902093 }
@@ -3230,7 +3233,7 @@
32303233 else
32313234 return -EINVAL;
32323235 handler = ccs_read_token(param);
3233- if (!ccs_correct_path(handler))
3236+ if (*handler != '/' || !ccs_correct_path(handler))
32343237 return -EINVAL;
32353238 e->handler = ccs_get_name(handler);
32363239 if (!e->handler)
@@ -5598,7 +5601,7 @@
55985601 return;
55995602 }
56005603 cp = acl->cond->transit->name;
5601- if (*cp == '/')
5604+ if (!ccs_domain_def(cp))
56025605 snprintf(buf, CCS_EXEC_TMPSIZE - 1, "%s %s",
56035606 ccs_current_domain()->domainname->name, cp);
56045607 else
Show on old repository browser