[PATCH 00/27] fix talloc stackframe leaks in remaining xx_path callers

David Disseldorp ddiss at samba.org
Sun Nov 2 12:21:22 MST 2014


cache_path(), lock_path() and state_path() all call xx_path() to return
a string allocated on the talloc_tos() context. The majority of the
callers do not free the returned string, nor do they check for
allocation failures.

The cache_path() callers were fixed with
https://lists.samba.org/archive/samba-technical/2014-October/102836.html
This patch-set addresses the remaining lock_path() and state_path()
callers.

Feedback appreciated.

Cheers, David

--

David Disseldorp (27):
      groupdb: don't leak state_path onto talloc tos
      eventlog: don't leak state_path onto talloc tos
      sharesec: don't leak state_path onto talloc tos
      nmbd_winsserver: don't leak state_path onto talloc tos
      account_pol: don't leak state_path onto talloc tos
      pdb_tdb: don't leak state_path onto talloc tos
      nt_printing: don't leak state_path onto talloc tos
      reg_backend_db: don't leak state_path onto talloc tos
      reg_perfcount: don't leak state_path onto talloc tos
      net_idmap: don't leak state_path onto talloc tos
      net_registry: don't leak state_path onto talloc tos
      smbcontrol: don't leak state_path onto talloc tos
      idmap_autorid: don't leak state_path onto talloc tos
      winbindd: don't leak state_path onto talloc tos
      winbindd_cache: don't leak state_path onto talloc tos
      lang_tdb: don't leak lock_path or data_path onto talloc tos
      dbwrap_watch: don't leak lock_path onto talloc tos
      g_lock: don't leak lock_path onto talloc tos
      server_mutex: don't leak lock_path onto talloc tos
      serverid: don't leak lock_path onto talloc tos
      brlock: don't leak lock_path onto talloc tos
      share_mode_lock: don't leak lock_path onto talloc tos
      nmbd_namelistdb: don't leak lock_path onto talloc tos
      printer_list: don't leak lock_path onto talloc tos
      notify_internal: don't leak lock_path onto talloc tos
      smbXsrv: don't leak lock_path onto talloc tos
      smbstatus: check for lock_path talloc failures

 source3/groupdb/mapping_tdb.c                   |  19 ++++++++++++++++---
 source3/intl/lang_tdb.c                         |  23 ++++++++++++++++++-----
 source3/lib/dbwrap/dbwrap_watch.c               |   8 +++++++-
 source3/lib/eventlog/eventlog.c                 |  10 +++++++---
 source3/lib/g_lock.c                            |  10 +++++++++-
 source3/lib/server_mutex.c                      |   7 ++++++-
 source3/lib/serverid.c                          |  10 +++++++++-
 source3/lib/sharesec.c                          |  12 ++++++++++--
 source3/locking/brlock.c                        |  13 +++++++++++--
 source3/locking/share_mode_lock.c               |  11 +++++++++--
 source3/nmbd/nmbd_namelistdb.c                  |  17 ++++++++++++-----
 source3/nmbd/nmbd_winsserver.c                  |  20 ++++++++++++++++++--
 source3/passdb/account_pol.c                    |  12 ++++++++++--
 source3/passdb/pdb_tdb.c                        |  10 ++++++++--
 source3/printing/nt_printing_migrate_internal.c |  25 +++++++++++++++++++------
 source3/printing/nt_printing_tdb.c              |  85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
 source3/printing/printer_list.c                 |  11 +++++++++--
 source3/registry/reg_backend_db.c               |  37 ++++++++++++++++++++++++++++---------
 source3/registry/reg_perfcount.c                | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------
 source3/smbd/notify_internal.c                  |  21 ++++++++++++++++++---
 source3/smbd/smbXsrv_open.c                     |   6 +++++-
 source3/smbd/smbXsrv_session.c                  |   6 +++++-
 source3/smbd/smbXsrv_tcon.c                     |   6 +++++-
 source3/smbd/smbXsrv_version.c                  |   4 ++++
 source3/utils/net_idmap.c                       |  24 +++++++++++++++++-------
 source3/utils/net_registry.c                    |  17 ++++++++++++-----
 source3/utils/smbcontrol.c                      |  24 ++++++++++++++++++++----
 source3/utils/status.c                          |  25 +++++++++++++++++++++----
 source3/winbindd/idmap_autorid.c                |  10 +++++++++-
 source3/winbindd/winbindd.c                     |   9 ++++++++-
 source3/winbindd/winbindd_cache.c               |  61 ++++++++++++++++++++++++++++++++++++++++++++++++-------------
 31 files changed, 523 insertions(+), 153 deletions(-)


More information about the samba-technical mailing list