about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-06-21 03:34:18 +0000
committerEric Wong <normalperson@yhbt.net>2013-06-25 21:25:52 +0000
commit03c2391078e19dc36ea62c75fa6745569b5cbef6 (patch)
treece3a52478992a911e877a6d41baa39f25a75516c
parent9312bf345a9329137652f91c079a38931211faba (diff)
downloadcmogstored-03c2391078e19dc36ea62c75fa6745569b5cbef6.tar.gz
This improves maintainability in case MogileFS changest these
limits.
-rw-r--r--defaults.h4
-rw-r--r--svc_dev.c2
-rw-r--r--valid_path.rl3
3 files changed, 6 insertions, 3 deletions
diff --git a/defaults.h b/defaults.h
index 7ba76be..adf9468 100644
--- a/defaults.h
+++ b/defaults.h
@@ -3,3 +3,7 @@
 #define MOG_DEFAULT_MGMTLISTEN "0.0.0.0:7501"
 #define MOG_DEFAULT_DOCROOT "/var/mogdata"
 #define MOG_DEFAULT_CONFIGFILE "/etc/mogilefs/mogstored.conf"
+#define MOG_DEVID_MAX (16777215) /* MEDIUMINT in DB */
+
+/* TODO: update if MogileFS supports FIDs >= 10,000,000,000 */
+#define MOG_PATH_MAX (sizeof("/dev16777215/0/000/000/0123456789.fid"))
diff --git a/svc_dev.c b/svc_dev.c
index e8d8a2c..ab21211 100644
--- a/svc_dev.c
+++ b/svc_dev.c
@@ -116,7 +116,7 @@ static int svc_scandev(struct mog_svc *svc, size_t *nr, mog_scandev_cb cb)
 
                 mog_devid = strtoul(ent->d_name + 3, &end, 10);
                 if (*end != 0) continue;
-                if (mog_devid > 0xffffff) continue; /* MEDIUMINT in DB */
+                if (mog_devid > MOG_DEVID_MAX) continue;
 
                 dev = mog_dev_for(svc, (uint32_t)mog_devid);
                 if (!dev) continue;
diff --git a/valid_path.rl b/valid_path.rl
index 9d26cfe..2d365c7 100644
--- a/valid_path.rl
+++ b/valid_path.rl
@@ -31,8 +31,7 @@ static bool path_traversal_found(const char *buf, size_t len)
 
 int mog_valid_path(const char *buf, size_t len)
 {
-        /* TODO: update if MogileFS supports FIDs >= 10,000,000,000 */
-        if (len >= (sizeof("/dev16777215/0/000/000/0123456789.fid")))
+        if (len >= MOG_PATH_MAX)
                 return 0;
 
         return ! path_traversal_found(buf, len);