EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: [Bug 1952074] [NEW] Using %z in printf is not portable
From: Dirk Zimoch via Core-talk <core-talk at aps.anl.gov>
To: core-talk at aps.anl.gov
Date: Wed, 24 Nov 2021 10:02:40 -0000
Public bug reported:

Some code in EPICS uses printf with the z format modifier for size_t arguments, as in "%zu". This is not portable. VxWorks (at least up to version 6.9.0) does not understand this and prints "zu" and then shifts all the remaining arguments to the wrong format specifier!
Older Windows versions uses "%Iu" for the same purpose.

Affected code:
modules/libcom/src/error/errlog.c (2x)
modules/libcom/test/epicsErrlogTest.c
modules/libcom/test/yajl_test.c (2x)
modules/pvAccess/pvtoolsSrc/pvlist.cpp (2x)
modules/pvAccess/src/ioc/reftrackioc.cpp (2x)
modules/pvAccess/blockingUDPTransport.cpp (4x)
modules/pvAccess/src/remote/codec.cpp (2x)
modules/pvAccess/src/remote/transportRegistry.cpp
modules/pvAccess/src/server/responseHandlers.cpp
modules/pvAccess/testApp/remote/testChannelConnect.cpp
modules/pvAccess/testApp/remote/testmonitorfifo.cpp (4x)
modules/pvData/src/factory/FieldCreateFactory.cpp (2x)
modules/pvData/testApp/pv/performstruct.cpp (2x)
modules/pvData/testApp/pv/testPVData.cpp
modules/pva2pva/pdbApp/pdbgroup.cpp
modules/pva2pva/pdbApp/pvalink.cpp (3x)
modules/pva2pva/pdbApp/pvalink_jlif.cpp
modules/pva2pva/testApp/testpdb.cpp (2x)

** Affects: epics-base
     Importance: Undecided
         Status: New

** Summary changed:

- Using %z in printf is not portavle
+ Using %z in printf is not portable

** Description changed:

- Some code in EPICS uses printf with the z format modifier for size_t arguments, as in "%zu". This is not portable. VxWorks (at least up to version 6.9.0) does not understand this and prints "zu". 
+ Some code in EPICS uses printf with the z format modifier for size_t arguments, as in "%zu". This is not portable. VxWorks (at least up to version 6.9.0) does not understand this and prints "zu" and then shifts all the remaining arguments to the wrong format specifier!
  Older Windows versions uses "%Iu" for the same purpose.
  
  Affected code:
  modules/libcom/src/error/errlog.c (2x)
  modules/libcom/test/epicsErrlogTest.c
  modules/libcom/test/yajl_test.c (2x)
  modules/pvAccess/pvtoolsSrc/pvlist.cpp (2x)
  modules/pvAccess/src/ioc/reftrackioc.cpp (2x)
  modules/pvAccess/blockingUDPTransport.cpp (4x)
  modules/pvAccess/src/remote/codec.cpp (2x)
  modules/pvAccess/src/remote/transportRegistry.cpp
  modules/pvAccess/src/server/responseHandlers.cpp
  modules/pvAccess/testApp/remote/testChannelConnect.cpp
  modules/pvAccess/testApp/remote/testmonitorfifo.cpp (4x)
  modules/pvData/src/factory/FieldCreateFactory.cpp (2x)
  modules/pvData/testApp/pv/performstruct.cpp (2x)
  modules/pvData/testApp/pv/testPVData.cpp
  modules/pva2pva/pdbApp/pdbgroup.cpp
  modules/pva2pva/pdbApp/pvalink.cpp (3x)
  modules/pva2pva/pdbApp/pvalink_jlif.cpp
  modules/pva2pva/testApp/testpdb.cpp (2x)

-- 
You received this bug notification because you are a member of EPICS
Core Developers, which is subscribed to EPICS Base.
Matching subscriptions: epics-core-list-subscription
https://bugs.launchpad.net/bugs/1952074

Title:
  Using %z in printf is not portable

Status in EPICS Base:
  New

Bug description:
  Some code in EPICS uses printf with the z format modifier for size_t arguments, as in "%zu". This is not portable. VxWorks (at least up to version 6.9.0) does not understand this and prints "zu" and then shifts all the remaining arguments to the wrong format specifier!
  Older Windows versions uses "%Iu" for the same purpose.

  Affected code:
  modules/libcom/src/error/errlog.c (2x)
  modules/libcom/test/epicsErrlogTest.c
  modules/libcom/test/yajl_test.c (2x)
  modules/pvAccess/pvtoolsSrc/pvlist.cpp (2x)
  modules/pvAccess/src/ioc/reftrackioc.cpp (2x)
  modules/pvAccess/blockingUDPTransport.cpp (4x)
  modules/pvAccess/src/remote/codec.cpp (2x)
  modules/pvAccess/src/remote/transportRegistry.cpp
  modules/pvAccess/src/server/responseHandlers.cpp
  modules/pvAccess/testApp/remote/testChannelConnect.cpp
  modules/pvAccess/testApp/remote/testmonitorfifo.cpp (4x)
  modules/pvData/src/factory/FieldCreateFactory.cpp (2x)
  modules/pvData/testApp/pv/performstruct.cpp (2x)
  modules/pvData/testApp/pv/testPVData.cpp
  modules/pva2pva/pdbApp/pdbgroup.cpp
  modules/pva2pva/pdbApp/pvalink.cpp (3x)
  modules/pva2pva/pdbApp/pvalink_jlif.cpp
  modules/pva2pva/testApp/testpdb.cpp (2x)

To manage notifications about this bug go to:
https://bugs.launchpad.net/epics-base/+bug/1952074/+subscriptions


Replies:
[Bug 1952074] Re: Using %z in printf is not portable Dirk Zimoch via Core-talk
[Bug 1952074] Re: Using %z in printf is not portable Dirk Zimoch via Core-talk
[Bug 1952074] Re: Using %z in printf is not portable Ralph Lange via Core-talk
[Bug 1952074] Re: Using %z in printf is not portable rivers via Core-talk
[Bug 1952074] Re: Using %z in printf is not portable rivers via Core-talk
[Bug 1952074] Re: Using %z in printf is not portable Dirk Zimoch via Core-talk
[Bug 1952074] Re: Using %z in printf is not portable rivers via Core-talk

Navigate by Date:
Prev: [Bug 1951848] Re: Failing EPICS 7 libCom tests on VxWorks 6.7 and 6.9 Dirk Zimoch via Core-talk
Next: [Bug 1952074] Re: Using %z in printf is not portable Dirk Zimoch via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
Navigate by Thread:
Prev: Build failed: EPICS Base 7 base-7.0-448 AppVeyor via Core-talk
Next: [Bug 1952074] Re: Using %z in printf is not portable Dirk Zimoch via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
ANJ, 24 Nov 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·