diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2011-01-11 19:46:56 +0100 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2011-01-11 19:47:58 +0100 |
commit | e0d2b8e59beba49d6c2bdcf24257cc1834ce2b26 (patch) | |
tree | b90c95d0469248ec166d7155129fcea67557aaf3 /libc | |
parent | 8764f2e75c875757529aa81e5cd96e17e6f6e5e4 (diff) | |
download | uClibc-alpine-e0d2b8e59beba49d6c2bdcf24257cc1834ce2b26.tar.bz2 uClibc-alpine-e0d2b8e59beba49d6c2bdcf24257cc1834ce2b26.tar.xz |
__psfs_parse_spec: always use long int for %p
closes bug #3037
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'libc')
-rw-r--r-- | libc/stdio/_scanf.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libc/stdio/_scanf.c b/libc/stdio/_scanf.c index 34c1c9abd..28cd21e30 100644 --- a/libc/stdio/_scanf.c +++ b/libc/stdio/_scanf.c @@ -924,7 +924,10 @@ int attribute_hidden __psfs_parse_spec(register psfs_t *psfs) goto ERROR_EINVAL; } - if ((p_m_spec_chars >= CONV_c) + if (p_m_spec_chars == CONV_p) { + /* a pointer has the same size as 'long int' */ + psfs->dataargtype = PA_FLAG_LONG; + } else if ((p_m_spec_chars >= CONV_c) && (psfs->dataargtype & PA_FLAG_LONG)) { p_m_spec_chars -= 3; /* lc -> C, ls -> S, l[ -> ?? */ } |