about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-05-30 03:50:42 +0000
committerEric Wong <normalperson@yhbt.net>2013-05-30 03:50:42 +0000
commitd1c18e26b0cc05009199f3997f0d57b07cdaa331 (patch)
tree8ce198222a162d6901fe69918851ed837e741f96
parent5eb1247df0b6e06933313a4b6c746c03cb95b4df (diff)
downloadcmogstored-d1c18e26b0cc05009199f3997f0d57b07cdaa331.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);