[lxc-devel] [lxc/lxc] 979a0d: Revert "Revert "tree-wide: use sizeof on static ar...

GitHub noreply at github.com
Sat Sep 1 18:53:34 UTC 2018


  Branch: refs/heads/master
  Home:   https://github.com/lxc/lxc
  Commit: 979a0d93545580aa2b69c6057ff7ea8dfdf48717
      https://github.com/lxc/lxc/commit/979a0d93545580aa2b69c6057ff7ea8dfdf48717
  Author: Christian Brauner <christian.brauner at ubuntu.com>
  Date:   2018-09-01 (Sat, 01 Sep 2018)

  Changed paths:
    M src/lxc/caps.c
    M src/lxc/cgroups/cgfsng.c
    M src/lxc/log.c
    M src/lxc/lxccontainer.c
    M src/lxc/monitor.c
    M src/lxc/tools/lxc_monitor.c
    M src/lxc/utils.c
    M src/tests/lxc-test-utils.c

  Log Message:
  -----------
  Revert "Revert "tree-wide: use sizeof on static arrays""

This reverts commit 2fb7cf0b325d2e34cd6faa2758cbaba6b6c3b99f.

The problem wasn't caused by the reverted commit and was fixed in

commit 0c9b1f826d3 ("macro: calculate buffer lengths correctly")

The full explanation can be taken from the following irc excerpt from
the #lxc-dev channel:

│19:54:47 brauner | there was a bug in one of the standard macros we used
│19:55:01 brauner | and the changes by INTTYPE_TO_STRLEN() caused the issue to surface
│19:55:03 brauner | which is good
│19:55:16 brauner | i sent a branch and stgraber merged it that fixes it
│19:57:56  Blub\0 | so...
│19:58:31  Blub\0 | still doesn't explain how it was the sizeof() patch
│20:07:14 brauner | Blub\0: so here's the long explanation
│20:07:35 brauner | Blub\0: stgraber bumped pid_max on our jenkins test builders
│20:07:53 brauner | Blub\0: because we're running *a lot* of containers
│20:07:56 brauner | in any case
│20:08:06 brauner | there was a buffer
│20:08:12 brauner | LXC_LSMATTRLEN
│20:08:59 brauner | it used to be
│20:09:03 brauner | -/* /proc/pid-to-str/attr/current = (5 + INTTYPE_TO_STRLEN(pid_t) + 7 + 1) */
│20:09:03 brauner | -#define LXC_LSMATTRLEN (5 + INTTYPE_TO_STRLEN(pid_t) + 7 + 1)
│20:09:14 brauner | which one can see is wrong
│20:09:21 brauner | before the INTTYPE patchset
│20:09:40 brauner | INTTYPE_TO_STRLEN(pid_t) was LXC_NUMSTRLEN64
│20:09:45 brauner | which gave you 21 chars
│20:09:57 brauner | so it accounted for the missing parts
│20:10:03 brauner | because the correct macro should've been
│20:10:17 brauner | +/* /proc/        = 6
│20:10:17 brauner | + *               +
│20:10:17 brauner | + * <pid-as-str>  = INTTYPE_TO_STRLEN(pid_t)
│20:10:17 brauner | + *               +
│20:10:17 brauner | + * /attr/        = 6
│20:10:17 brauner | + *               +
│20:10:17 brauner | + * /current      = 8
│20:10:17 brauner | + *               +
│20:10:17 brauner | + * \0            = 1
│20:10:17 brauner | + */
│20:10:17 brauner | +#define LXC_LSMATTRLEN (6 + INTTYPE_TO_STRLEN(pid_t) + 6 + 8 + 1)
│20:10:24  Blub\0 | still
│20:10:31 brauner | the issue was only seen
│20:10:39 brauner | when the pid number hit a specific maximum
│20:10:50  Blub\0 | the sizeof patch only changed instances of actual char buf[A_FIXED_NUMBER] + snprintf(buf, A_FIXED_NUMBER, ...)
│20:10:54 brauner | aka exceeded the newly shortened buffer
│20:11:42 brauner | your patch was a red herring
│20:12:03  Blub\0 | I guess
│20:12:06 brauner | it didn't cause it
│20:12:14 brauner | it just surfaced at the same time it was merged
│20:12:25  Blub\0 | so we can revert the revert then? :)
│20:12:35 brauner | yes, that was th eplan all along

Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>


  Commit: 04a49be6747cc1c034dd7a004494565338c35130
      https://github.com/lxc/lxc/commit/04a49be6747cc1c034dd7a004494565338c35130
  Author: Wolfgang Bumiller <w.bumiller at proxmox.com>
  Date:   2018-09-01 (Sat, 01 Sep 2018)

  Changed paths:
    M src/lxc/caps.c
    M src/lxc/cgroups/cgfsng.c
    M src/lxc/log.c
    M src/lxc/lxccontainer.c
    M src/lxc/monitor.c
    M src/lxc/tools/lxc_monitor.c
    M src/lxc/utils.c
    M src/tests/lxc-test-utils.c

  Log Message:
  -----------
  Merge pull request #2580 from brauner/2018-09-01/revert_blub_revert

Revert "Revert "tree-wide: use sizeof on static arrays""


Compare: https://github.com/lxc/lxc/compare/b0f30508842e...04a49be6747c
      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the lxc-devel mailing list