Re: var_vacm_access() question

Bill Fenner <[email protected]>
Newsgroups gmane.network.net-snmp.devel
Message-ID <CAF4SogayRUrYzRkB87Lcb-PjHO7HYVZe6zDCcKmJdDQEjMoE5w@mail.gmail.com>
On Wed, Mar 21, 2018 at 5:50 PM, Keith Mendoza <[email protected]> wrote:

Hi,
> I'm one of the volunteer developers with ICEI (please see email with
> subject "ICEI asks what help you need" for details). I was attempting
> to compile net-snmp code with -std=c99 compiler option, and the
> compiler failed with "error: overflow in implicit constant conversion
> [-Werror=overflow] on the following lines in
> net-snmp-code/agent/mibII/vacm_vars.c: 382, 397, and 593. These 3
> locations have *cp++ = 255;
>
> So, my question is where can I get more information on
> var_vacm_access(). It appears to me it has something to do with
> determining group access control for a MIB group. Specifically, what
> is the rational for incrementing, then basically setting the location
> pointed by "cp" to 255 given the if logic above each of the 3
> locations where *cp++ = 255 is set.
>
Keith,

The blocks in question look like

    oid            *op;

    char           *cp;

...
            cp = contextPrefix;
            for (i = 0; i <= len && op < name + *length; i++) {
                if (*op > 255) {
                    *cp++ = 255;
                    ++op;
                } else
                    *cp++ = (char) *op++;
            }

The underlying type of oid is int or long, so it becomes obvious that this
code is copying values from op to cp while truncating values that won’t fit
into a char.

It’s probably not unreasonable to change the relevant types to u_char.

Bill
​

------------------------------------------------------------------------------
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.