Message ID | 20190426222237.13209-1-colin.king@canonical.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [next] unicode: fix dereference of a potentially null pointer | expand |
Forwarding because this file is not in my tree. On Sat, Apr 27, 2019 at 7:22 AM Colin King <colin.king@canonical.com> wrote: > > From: Colin Ian King <colin.king@canonical.com> > > The pointer 'tree' is deferenced when assigning pointer 'trie', however > trie is being null checked a few lines later, so it could potentially > be null. Fix the potential null pointer dereference by only dereferencing > it after it has been null checked. > > Addresses-Coverity: ("Dereference before null check") > Fixes: b08fcacaaaf4 ("unicode: introduce UTF-8 character database") > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > scripts/mkutf8data.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/scripts/mkutf8data.c b/scripts/mkutf8data.c > index 12ce94b43be6..0563ba679bbb 100644 > --- a/scripts/mkutf8data.c > +++ b/scripts/mkutf8data.c > @@ -2706,7 +2706,7 @@ static utf8leaf_t *utf8hangul(const char *str, unsigned char *hangul) > static utf8leaf_t *utf8nlookup(struct tree *tree, unsigned char *hangul, > const char *s, size_t len) > { > - utf8trie_t *trie = utf8data + tree->index; > + utf8trie_t *trie; > int offlen; > int offset; > int mask; > @@ -2716,6 +2716,7 @@ static utf8leaf_t *utf8nlookup(struct tree *tree, unsigned char *hangul, > return NULL; > if (len == 0) > return NULL; > + trie = utf8data + tree->index; > node = 1; > while (node) { > offlen = (*trie & OFFLEN) >> OFFLEN_SHIFT; > -- > 2.20.1 > -- Best Regards Masahiro Yamada
Masahiro Yamada <yamada.masahiro@socionext.com> writes: > Forwarding because this file is not in my tree. > > > > > > On Sat, Apr 27, 2019 at 7:22 AM Colin King <colin.king@canonical.com> wrote: >> >> From: Colin Ian King <colin.king@canonical.com> >> >> The pointer 'tree' is deferenced when assigning pointer 'trie', however >> trie is being null checked a few lines later, so it could potentially >> be null. Fix the potential null pointer dereference by only dereferencing >> it after it has been null checked. >> >> Addresses-Coverity: ("Dereference before null check") >> Fixes: b08fcacaaaf4 ("unicode: introduce UTF-8 character database") >> Signed-off-by: Colin Ian King <colin.king@canonical.com> Acked-by: Gabriel Krisman Bertazi <krisman@collabora.com> Ted, can you pick this up directly for now? >> --- >> scripts/mkutf8data.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/scripts/mkutf8data.c b/scripts/mkutf8data.c >> index 12ce94b43be6..0563ba679bbb 100644 >> --- a/scripts/mkutf8data.c >> +++ b/scripts/mkutf8data.c >> @@ -2706,7 +2706,7 @@ static utf8leaf_t *utf8hangul(const char *str, unsigned char *hangul) >> static utf8leaf_t *utf8nlookup(struct tree *tree, unsigned char *hangul, >> const char *s, size_t len) >> { >> - utf8trie_t *trie = utf8data + tree->index; >> + utf8trie_t *trie; >> int offlen; >> int offset; >> int mask; >> @@ -2716,6 +2716,7 @@ static utf8leaf_t *utf8nlookup(struct tree *tree, unsigned char *hangul, >> return NULL; >> if (len == 0) >> return NULL; >> + trie = utf8data + tree->index; >> node = 1; >> while (node) { >> offlen = (*trie & OFFLEN) >> OFFLEN_SHIFT; >> -- >> 2.20.1 >> > > > -- > Best Regards > Masahiro Yamada
On Sun, Apr 28, 2019 at 07:02:45AM -0400, Gabriel Krisman Bertazi wrote: > > On Sat, Apr 27, 2019 at 7:22 AM Colin King <colin.king@canonical.com> wrote: > >> > >> From: Colin Ian King <colin.king@canonical.com> > >> > >> The pointer 'tree' is deferenced when assigning pointer 'trie', however > >> trie is being null checked a few lines later, so it could potentially > >> be null. Fix the potential null pointer dereference by only dereferencing > >> it after it has been null checked. > >> > >> Addresses-Coverity: ("Dereference before null check") > >> Fixes: b08fcacaaaf4 ("unicode: introduce UTF-8 character database") > >> Signed-off-by: Colin Ian King <colin.king@canonical.com> > > Acked-by: Gabriel Krisman Bertazi <krisman@collabora.com> > > Ted, can you pick this up directly for now? Ack, I've merged it into the the patch "unicode: introduce UTF-8 character database". - Ted
diff --git a/scripts/mkutf8data.c b/scripts/mkutf8data.c index 12ce94b43be6..0563ba679bbb 100644 --- a/scripts/mkutf8data.c +++ b/scripts/mkutf8data.c @@ -2706,7 +2706,7 @@ static utf8leaf_t *utf8hangul(const char *str, unsigned char *hangul) static utf8leaf_t *utf8nlookup(struct tree *tree, unsigned char *hangul, const char *s, size_t len) { - utf8trie_t *trie = utf8data + tree->index; + utf8trie_t *trie; int offlen; int offset; int mask; @@ -2716,6 +2716,7 @@ static utf8leaf_t *utf8nlookup(struct tree *tree, unsigned char *hangul, return NULL; if (len == 0) return NULL; + trie = utf8data + tree->index; node = 1; while (node) { offlen = (*trie & OFFLEN) >> OFFLEN_SHIFT;