Francesco Pretto <cez...@gmail.com> writes:

> Hello, I have a fix for libidn 1.38 regarding the Win64 platform. The use
> of glong in stringprep_utf8_to_ucs4[1] and other locations in nfkc.c is
> incorrect. The glong is a define for long: use of long type is unsafe in
> cross-platform code that spans through unix and windows platforms compiled
> with MSVC. MSVC will not scale to a 64 bit sized type when targeting for
> x64 hence the cast from size_t to glong pointers is unsafe and does indeed
> break Win64 builds. My fix is just deleting the dangerous glong define and
> use the safer (and more meaningful) gsize/gssize_t types instead.

Thanks.  What error message do you get, or how did you notice this?  We
do build and self-test Win64 via CI/CD so I'm surprised to see this.
Your code analysis have a point though, although I'm not certain your
patch is the proper fix -- maybe 'glong' should be mapped to a different
type instead.

/Simon

Attachment: signature.asc
Description: PGP signature

  • Fix... Francesco Pretto
    • ... Discussion list for GNU Internationalized Domain Name library (Libidn)
      • ... Francesco Pretto
        • ... Discussion list for GNU Internationalized Domain Name library (Libidn)
          • ... Francesco Pretto
            • ... Discussion list for GNU Internationalized Domain Name library (Libidn)
        • ... Discussion list for GNU Internationalized Domain Name library (Libidn)
          • ... Francesco Pretto
            • ... Tim Rühsen
              • ... Discussion list for GNU Internationalized Domain Name library (Libidn)

Reply via email to