public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 00/11] Build getdomainname, gethostname, syslog with fortification
@ 2024-02-09 15:24 Florian Weimer
  2024-02-09 15:24 ` [PATCH 01/11] misc: Build getdomainname " Florian Weimer
                   ` (10 more replies)
  0 siblings, 11 replies; 34+ messages in thread
From: Florian Weimer @ 2024-02-09 15:24 UTC (permalink / raw)
  To: libc-alpha

Fortification was disabled to address build failures.  With
fortification enabled, the installed header contains an inline function
with a body, and we cannot define the function again, with its real
implementation.

The internal __snprintf function did not have an fortify wrapper, so we
lost a couple of fortification opportunities.

After these changes, use of %n in syslog becomes a potential performance
bottleneck.  The later commits extract useful functionality from
asprintf and use that to construct the syslog packet contents.

Thanks,
Florian

Florian Weimer (11):
  misc: Build getdomainname with fortification
  misc: Build gethostname with fortification
  libio: Add fortify wrapper for internal __snprintf
  syslog: Update misc/tst-syslog to check reported %n value
  syslog: Build with fortification
  stdio: Rename __printf_buffer to __vfprintf_buffer
  libio: Extract __printf_buffer_asprintf_init from asprintf
    implementation
  stdio-common: Introduce the __printf_buffer function
  stdio-common: Allow skipping initial bytes in __printf_buffer for %n
  stdio-common: Support large offsets with %lln
  syslog: Use a printf buffer directly to construct the entire packet

 debug/snprintf_chk.c                        |   1 +
 include/bits/stdio2.h                       |   9 +
 include/printf.h                            |   9 +-
 include/printf_buffer.h                     |  52 +++++-
 include/stdio.h                             |   1 +
 libio/iovdprintf.c                          |   2 +-
 libio/iovsprintf.c                          |   2 +-
 libio/obprintf.c                            |   2 +-
 libio/vasprintf.c                           |  42 ++---
 libio/vsnprintf.c                           |   2 +-
 libio/vswprintf.c                           |   2 +-
 misc/Makefile                               |   7 -
 misc/bits/syslog.h                          |   4 +
 misc/getdomain.c                            |   2 +
 misc/gethostname.c                          |   2 +
 misc/syslog.c                               | 187 +++++++-------------
 misc/tst-syslog.c                           |  12 +-
 posix/bits/unistd.h                         |   6 +-
 stdio-common/Makefile                       |   6 +
 stdio-common/printf_buffer.c                |  30 ++++
 stdio-common/tst-printf-large-n.c           |  81 +++++++++
 stdio-common/tst-printf_buffer.c            | 156 ++++++++++++++++
 stdio-common/vfprintf-internal.c            |  10 +-
 stdio-common/vfprintf-process-arg.c         |   2 +-
 sysdeps/mach/hurd/getdomain.c               |   2 +
 sysdeps/mach/hurd/gethostname.c             |   2 +
 sysdeps/posix/gethostname.c                 |   2 +
 sysdeps/unix/sysv/linux/alpha/gethostname.c |   2 +
 28 files changed, 448 insertions(+), 189 deletions(-)
 create mode 100644 stdio-common/printf_buffer.c
 create mode 100644 stdio-common/tst-printf-large-n.c
 create mode 100644 stdio-common/tst-printf_buffer.c


base-commit: 15de3d17e1d9da5d38efb0a87a82efbc5bda732d
-- 
2.43.0


^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2024-02-16 15:58 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-09 15:24 [PATCH 00/11] Build getdomainname, gethostname, syslog with fortification Florian Weimer
2024-02-09 15:24 ` [PATCH 01/11] misc: Build getdomainname " Florian Weimer
2024-02-12 17:14   ` Adhemerval Zanella Netto
2024-02-12 17:30     ` Andreas Schwab
2024-02-12 19:29       ` Florian Weimer
2024-02-13  9:12         ` Andreas Schwab
2024-02-13  9:23           ` Florian Weimer
2024-02-13  9:32             ` Andreas Schwab
2024-02-09 15:24 ` [PATCH 02/11] misc: Build gethostname " Florian Weimer
2024-02-12 17:25   ` Adhemerval Zanella Netto
2024-02-09 15:25 ` [PATCH 03/11] libio: Add fortify wrapper for internal __snprintf Florian Weimer
2024-02-12 17:34   ` Adhemerval Zanella Netto
2024-02-13 12:13     ` Florian Weimer
2024-02-13 13:16       ` Adhemerval Zanella Netto
2024-02-09 15:25 ` [PATCH 04/11] syslog: Update misc/tst-syslog to check reported %n value Florian Weimer
2024-02-13 11:59   ` Adhemerval Zanella Netto
2024-02-15 13:23     ` Florian Weimer
2024-02-09 15:25 ` [PATCH 05/11] syslog: Build with fortification Florian Weimer
2024-02-13 12:26   ` Adhemerval Zanella Netto
2024-02-09 15:25 ` [PATCH 06/11] stdio: Rename __printf_buffer to __vfprintf_buffer Florian Weimer
2024-02-16 13:40   ` Adhemerval Zanella Netto
2024-02-09 15:25 ` [PATCH 07/11] libio: Extract __printf_buffer_asprintf_init from asprintf implementation Florian Weimer
2024-02-16 14:04   ` Adhemerval Zanella Netto
2024-02-09 15:25 ` [PATCH 08/11] stdio-common: Introduce the __printf_buffer function Florian Weimer
2024-02-16 14:12   ` Adhemerval Zanella Netto
2024-02-09 15:25 ` [PATCH 09/11] stdio-common: Allow skipping initial bytes in __printf_buffer for %n Florian Weimer
2024-02-16 14:13   ` Adhemerval Zanella Netto
2024-02-09 15:25 ` [PATCH 10/11] stdio-common: Support large offsets with %lln Florian Weimer
2024-02-16 14:20   ` Adhemerval Zanella Netto
2024-02-09 15:26 ` [PATCH 11/11] syslog: Use a printf buffer directly to construct the entire packet Florian Weimer
2024-02-14 15:16   ` Adhemerval Zanella Netto
2024-02-15 13:02     ` Florian Weimer
2024-02-16 13:35       ` Adhemerval Zanella Netto
2024-02-16 15:58   ` Adhemerval Zanella Netto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).