common: Make openpgp_oid_to_str more robust.
authorWerner Koch <wk@gnupg.org>
Sun, 15 Mar 2015 11:07:21 +0000 (12:07 +0100)
committerWerner Koch <wk@gnupg.org>
Sun, 15 Mar 2015 11:07:21 +0000 (12:07 +0100)
commit35db798c2df7f31b52a9dd9d55ea60ae1f325be9
tree016f8094d21041a6892ad8df6ac2fb50f9c310ce
parentefde50f92af241d8357db83e280a6ece62f6397f
common: Make openpgp_oid_to_str more robust.

* common/openpgp-oid.c (openpgp_oid_to_str): Take care of
gcry_mpi_get_opaque returning NULL.  Remove useless condition !BUF.
--

It is possible that an opaque MPI stores just a NULL pointer.  Take
care of that before incrementing the pointer.  We return an error in
this case because at least a length byte is required.

Found due to hint from stack 0.3:

  bug: anti-simplify
  model: |
    %tobool15 = icmp ne i8* %incdec.ptr, null, !dbg !567
    -->  true
  stack:
    - /home/wk/s/gnupg/common/openpgp-oid.c:220:0
  ncore: 1
  core:
    - /home/wk/s/gnupg/common/openpgp-oid.c:212:0
      - pointer overflow

Signed-off-by: Werner Koch <wk@gnupg.org>
common/openpgp-oid.c