path: root/lib/parser.c
AgeCommit message (Collapse)AuthorLines
2016-12-06parser: add u64 number parserJames Smart-0/+47
Will be used by the nvme-fabrics FC transport in parsing options Signed-off-by: James Smart <> Signed-off-by: Sagi Grimberg <>
2014-01-23lib/parser.c: put EXPORT_SYMBOLs in the conventional placeAndrew Morton-7/+6
Cc: Du, Changbin <> Cc: Joe Perches <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2014-01-23lib/parser.c: add match_wildcard() functionDu, Changbin-0/+51
match_wildcard function is a simple implementation of wildcard matching algorithm. It only supports two usual wildcardes: '*' - matches zero or more characters '?' - matches one character This algorithm is safe since it is non-recursive. Signed-off-by: Du, Changbin <> Cc: Jason Baron <> Cc: Joe Perches <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2013-02-21lib/parser.c: fix up comments for valid return values from match_numberNamjae Jeon-3/+3
match_number() has return values of -ENOMEM, -EINVAL and -ERANGE. So, for all the functions calling match_number, the return value should include these values. Fix up the comments to reflect the correct values. Signed-off-by: Namjae Jeon <> Signed-off-by: Amit Sahrawat <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2012-10-06lib/parser.c: avoid overflow in match_number()Alex Elder-2/+8
The result of converting an integer value to another signed integer type that's unable to represent the original value is implementation defined. (See notes in section of the C standard.) In match_number(), the result of simple_strtol() (which returns type long) is assigned to a value of type int. Instead, handle the result of simple_strtol() in a well-defined way, and return -ERANGE if the result won't fit in the int variable used to hold the parsed result. No current callers pay attention to the particular error value returned, so this additional return code shouldn't do any harm. [ coding-style tweaks] Signed-off-by: Alex Elder <> Cc: Randy Dunlap <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2012-03-07lib: reduce the use of module.h wherever possiblePaul Gortmaker-1/+2
For files only using THIS_MODULE and/or EXPORT_SYMBOL, map them onto including export.h -- or if the file isn't even using those, then just delete the include. Fix up any implicit include dependencies that were being masked by module.h along the way. Signed-off-by: Paul Gortmaker <>
2011-03-31Fix common misspellingsLucas De Marchi-1/+1
Fixes generated by 'codespell' and manually reviewed. Signed-off-by: Lucas De Marchi <>
2010-10-26lib/parser: cleanup match_number()Namhyung Kim-3/+4
Use new variable 'len' to make code more readable. Signed-off-by: Namhyung Kim <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-15parser: remove unnecessary strlen()André Goddard Rosa-4/+7
No functional change. Cache strlen() result to avoid recalculating it up to 3 times on the worst case. Reduces code size a little by 32 bytes: text data bss dec hex filename 1385 0 0 1385 569 lib/parser.o-BEFORE 1353 0 0 1353 549 lib/parser.o-AFTER Signed-off-by: André Goddard Rosa <> Cc: Randy Dunlap <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2008-10-13vfs: Use const for kernel parser tableSteven Whitehouse-1/+1
This is a much better version of a previous patch to make the parser tables constant. Rather than changing the typedef, we put the "const" in all the various places where its required, allowing the __initconst exception for nfsroot which was the cause of the previous trouble. This was posted for review some time ago and I believe its been in -mm since then. Signed-off-by: Steven Whitehouse <> Cc: Alexander Viro <> Signed-off-by: Linus Torvalds <>
2008-05-14add match_strlcpy() us it to make v9fs make uname and remotename parsing ↵Markus Armbruster-12/+20
more robust match_strcpy() is a somewhat creepy function: the caller needs to make sure that the destination buffer is big enough, and when he screws up or forgets, match_strcpy() happily overruns the buffer. There's exactly one customer: v9fs_parse_options(). I believe it currently can't overflow its buffer, but that's not exactly obvious. The source string is a substing of the mount options. The kernel silently truncates those to PAGE_SIZE bytes, including the terminating zero. See compat_sys_mount() and do_mount(). The destination buffer is obtained from __getname(), which allocates from name_cachep, which is initialized by vfs_caches_init() for size PATH_MAX. We're safe as long as PATH_MAX <= PAGE_SIZE. PATH_MAX is 4096. As far as I know, the smallest PAGE_SIZE is also 4096. Here's a patch that makes the code a bit more obviously correct. It doesn't depend on PATH_MAX <= PAGE_SIZE. Signed-off-by: Markus Armbruster <> Cc: Latchesar Ionkov <> Cc: Jim Meyering <> Cc: "Randy.Dunlap" <> Signed-off-by: Andrew Morton <> Signed-off-by: Eric Van Hensbergen <>
2007-05-03[AFS]: Make the match_*() functions take const options.David Howells-5/+5
Make the match_*() functions take a const pointer to the options table and make strings pointers in the options table const too. Signed-off-by: David Howells <> Signed-off-by: David S. Miller <>
2005-04-16Linux-2.6.12-rc2v2.6.12-rc2Linus Torvalds-0/+220
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!