diff options
author | Eric Wong <normalperson@yhbt.net> | 2013-05-30 03:50:42 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2013-05-30 03:50:42 +0000 |
commit | d1c18e26b0cc05009199f3997f0d57b07cdaa331 (patch) | |
tree | 8ce198222a162d6901fe69918851ed837e741f96 | |
parent | 5eb1247df0b6e06933313a4b6c746c03cb95b4df (diff) | |
download | cmogstored-d1c18e26b0cc05009199f3997f0d57b07cdaa331.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); |