summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2011-09-20 14:33:22 -0400
committerSteve Dickson <steved@redhat.com>2011-09-20 14:34:42 -0400
commit076b91078411b6a2c99c8d85bc10ded5c64a7019 (patch)
tree82a7af6d8c7d51350fcc81f17b954da6dc1240ff
parent5c3e26650a54af7826a2b4c6759b56681a350c37 (diff)
downloadnfs-utils-076b91078411b6a2c99c8d85bc10ded5c64a7019.tar.gz
nfs-utils-076b91078411b6a2c99c8d85bc10ded5c64a7019.tar.xz
nfs-utils-076b91078411b6a2c99c8d85bc10ded5c64a7019.zip
idmapd: Fix decoding of octal encoded fields
The decoded octal will always be positive and (char) -1 is negative. Any field containing an encoded octal will be rejected. As the encoded value should be an unsigned char, fix the check to reject all values > (unsigned char) -1 = UCHAR_MAX, as this indicate an error in the encoding. Signed-off-by: Jan-Marek Glogowski <glogow@fbihome.de> Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r--utils/idmapd/idmapd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
index 76a56ef..19d9114 100644
--- a/utils/idmapd/idmapd.c
+++ b/utils/idmapd/idmapd.c
@@ -925,9 +925,9 @@ getfield(char **bpp, char *fld, size_t fldsz)
if (*bp == '\\') {
if ((n = sscanf(bp, "\\%03o", &val)) != 1)
return (-1);
- if (val > (char)-1)
+ if (val > UCHAR_MAX)
return (-1);
- *fld++ = (char)val;
+ *fld++ = val;
bp += 4;
} else {
*fld++ = *bp;