diff options
author | Eric Wong <normalperson@yhbt.net> | 2013-06-21 03:34:18 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2013-06-25 21:25:52 +0000 |
commit | 03c2391078e19dc36ea62c75fa6745569b5cbef6 (patch) | |
tree | ce3a52478992a911e877a6d41baa39f25a75516c | |
parent | 9312bf345a9329137652f91c079a38931211faba (diff) | |
download | cmogstored-03c2391078e19dc36ea62c75fa6745569b5cbef6.tar.gz |
This improves maintainability in case MogileFS changest these limits.
-rw-r--r-- | defaults.h | 4 | ||||
-rw-r--r-- | svc_dev.c | 2 | ||||
-rw-r--r-- | valid_path.rl | 3 |
3 files changed, 6 insertions, 3 deletions
@@ -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")) @@ -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); |