Re: Fix patch for SF bug 2833

Bill Fenner <[email protected]>
Newsgroups gmane.network.net-snmp.devel
Message-ID <CAF4SogaNffAg6DjeGwzUos9g=bMes3YX+J-vUoAPXWD0xyB3yA@mail.gmail.com>
I don't think the patch is the issue.  There are two questions to be
addressed first:

1. For the embedded environment, is it acceptable to use an extra several
bytes for this (or is there a way to rearrange the struct so that padding
reduces the extra cost)?
2. Is it reasonable to have more than 255 variables in a single
registration, or should the reporter just split up his registration into
multiple groups, each with less than 255 variables?

  Bill


On Wed, Mar 21, 2018 at 10:43 PM, Eric S. Raymond <[email protected]> wrote:

> From 54e79ba66327bdb54f97f457d76531f657ec546d Mon Sep 17 00:00:00 2001
> From: "Eric S. Raymond" <[email protected]>
> Date: Wed, 21 Mar 2018 22:22:29 -0400
> Subject: [PATCH] include/net-snmp/agent/{snmp_vars.h,var_struct.h}:
> address SF
>  bug 2833.
>
> Tests pass,
> ---
>  include/net-snmp/agent/snmp_vars.h  |  2 +-
>  include/net-snmp/agent/var_struct.h | 12 ++++++------
>  2 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/include/net-snmp/agent/snmp_vars.h
> b/include/net-snmp/agent/snmp_vars.h
> index bd27eeb..b2f2f8f 100644
> --- a/include/net-snmp/agent/snmp_vars.h
> +++ b/include/net-snmp/agent/snmp_vars.h
> @@ -101,7 +101,7 @@ PERFORMANCE OF THIS SOFTWARE.
>  #define INST   0xFFFFFFFF      /* used to fill out the instance field of
> the variables table */
>
>      struct variable {
> -        u_char          magic;  /* passed to function as a hint */
> +        u_short         magic;  /* passed to function as a hint */
>          char            type;   /* type of variable */
>          /*
>           * See important comment in snmp_vars.c relating to acl
> diff --git a/include/net-snmp/agent/var_struct.h
> b/include/net-snmp/agent/var_struct.h
> index 15b5770..10bf4ae 100644
> --- a/include/net-snmp/agent/var_struct.h
> +++ b/include/net-snmp/agent/var_struct.h
> @@ -52,7 +52,7 @@ typedef struct netsnmp_subtree_s {
>   * application.  The first 5 elements of the structure must remain
> constant.
>   */
>  struct variable1 {
> -    u_char          magic;      /* passed to function as a hint */
> +    u_short         magic;      /* passed to function as a hint */
>      u_char          type;       /* type of variable */
>      u_short         acl;        /* access control list for variable */
>      FindVarMethod  *findVar;    /* function that finds variable */
> @@ -61,7 +61,7 @@ struct variable1 {
>  };
>
>  struct variable2 {
> -    u_char          magic;      /* passed to function as a hint */
> +    u_short         magic;      /* passed to function as a hint */
>      u_char          type;       /* type of variable */
>      u_short         acl;        /* access control list for variable */
>      FindVarMethod  *findVar;    /* function that finds variable */
> @@ -79,7 +79,7 @@ struct variable3 {
>  };
>
>  struct variable4 {
> -    u_char          magic;      /* passed to function as a hint */
> +    u_short         magic;      /* passed to function as a hint */
>      u_char          type;       /* type of variable */
>      u_short         acl;        /* access control list for variable */
>      FindVarMethod  *findVar;    /* function that finds variable */
> @@ -88,7 +88,7 @@ struct variable4 {
>  };
>
>  struct variable7 {
> -    u_char          magic;      /* passed to function as a hint */
> +    u_short         magic;      /* passed to function as a hint */
>      u_char          type;       /* type of variable */
>      u_short         acl;        /* access control list for variable */
>      FindVarMethod  *findVar;    /* function that finds variable */
> @@ -97,7 +97,7 @@ struct variable7 {
>  };
>
>  struct variable8 {
> -    u_char          magic;      /* passed to function as a hint */
> +    u_short         magic;      /* passed to function as a hint */
>      u_char          type;       /* type of variable */
>      u_short         acl;        /* access control list for variable */
>      FindVarMethod  *findVar;    /* function that finds variable */
> @@ -106,7 +106,7 @@ struct variable8 {
>  };
>
>  struct variable13 {
> -    u_char          magic;      /* passed to function as a hint */
> +    u_short         magic;      /* passed to function as a hint */
>      u_char          type;       /* type of variable */
>      u_short         acl;        /* access control list for variable */
>      FindVarMethod  *findVar;    /* function that finds variable */
> --
> 2.7.4
>
>
> --
>                 <a href="http://www.catb.org/~esr/">Eric S. Raymond</a>
>
> As war and government prove, insanity is the most contagious of
> diseases.       -- Edward Abbey
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Net-snmp-coders mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/net-snmp-coders
>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.