From 0a777315e9f436412819b14606550fcd4de57826 Mon Sep 17 00:00:00 2001 From: Masahiro Sakai Date: Thu, 1 Aug 2024 10:13:47 +0900 Subject: [PATCH] fix not to use iendian when the return value of nc_inq_var_endian() is not NC_NOERR iendian is left uninitialized when nc_inq_var_endian() returns NC_ENOTNC4. --- src/netCDF4/_netCDF4.pyx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/netCDF4/_netCDF4.pyx b/src/netCDF4/_netCDF4.pyx index 6023406c9..2f49870fe 100644 --- a/src/netCDF4/_netCDF4.pyx +++ b/src/netCDF4/_netCDF4.pyx @@ -2062,10 +2062,11 @@ cdef _get_vars(group, bint auto_complex=False): endianness = None with nogil: ierr = nc_inq_var_endian(_grpid, varid, &iendian) - if ierr == NC_NOERR and iendian == NC_ENDIAN_LITTLE: - endianness = '<' - elif iendian == NC_ENDIAN_BIG: - endianness = '>' + if ierr == NC_NOERR: + if iendian == NC_ENDIAN_LITTLE: + endianness = '<' + elif iendian == NC_ENDIAN_BIG: + endianness = '>' # check to see if it is a supported user-defined type. try: datatype = _nctonptype[xtype]