Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

segfautl on "lldptool -t -i eth2 -V PFC -c enabled : #1

Open
sowminiv opened this issue Dec 16, 2016 · 0 comments
Open

segfautl on "lldptool -t -i eth2 -V PFC -c enabled : #1

sowminiv opened this issue Dec 16, 2016 · 0 comments

Comments

@sowminiv
Copy link

sowminiv commented Dec 16, 2016

Man page at https://linux.die.net/man/8/lldptool-pfc claims this should work.
But I get a segfault at
(gdb) bt
#0 0x000000000040a993 in get_arg_val_list (ibuf=0x7fffffffc2cd "07enabled",
ilen=14, ioff=0x7fffffffb12c, args=0x6163e0, argvals=0x6163c0)
at lldp_util.c:1239
#1 0x0000000000403c86 in print_arg_value (ibuf=0x7fffffffc2cd "07enabled")
at lldptool_cmds.c:406
#2 0x0000000000403d65 in print_tlvs (cmd=0x7fffffffb1e0,
ibuf=0x7fffffffc2cd "07enabled") at lldptool_cmds.c:436
#3 0x0000000000404225 in print_cmd_response (
ibuf=0x7fffffffc2b3 "C3010000001504eth10080c20b07enabled", status=0)
at lldptool_cmds.c:559
#4 0x000000000040432a in print_response (
buf=0x7fffffffc2b0 "R00C3010000001504eth10080c20b07enabled", status=0)
at lldptool_cmds.c:591
#5 0x0000000000401f6c in parse_print_message (
msg=0x7fffffffc2b0 "R00C3010000001504eth10080c20b07enabled", print=1)
at lldptool.c:280
#6 0x0000000000402142 in _clif_command (clif=0x616010,
cmd=0x7fffffffd3d2 "M00000001C3010000001504eth1000080c20b07enabled",
print=1) at lldptool.c:337
#7 0x0000000000402180 in clif_command (clif=0x616010,
cmd=0x7fffffffd3d2 "M00000001C3010000001504eth1000080c20b07enabled", raw=0)
at lldptool.c:346
#8 0x000000000040359d in cli_cmd_gettlv (clif=0x616010, argc=1,
argv=0x7fffffffe590, cmd=0x7fffffffd3b0, raw=0) at lldptool_cmds.c:177
#9 0x0000000000402a5a in request (clif=0x616010, argc=8, argv=0x7fffffffe558)
at lldptool.c:643
#10 0x0000000000402f5f in main (argc=8, argv=0x7fffffffe558) at lldptool.c:796

Sounds like this needs
--- a/lldp_util.c
+++ b/lldp_util.c
@@ -1207,7 +1207,7 @@ int get_arg_val_list(char *ibuf, int ilen, int *ioff,
}
hexstr2bin(ibuf+*ioff, &arglen, sizeof(arglen));
*ioff += 2 * (int)sizeof(arglen);

  •           if (ilen - *ioff >= arglen) {
    
  •           if (ilen - *ioff >= 0) {
                      args[i] = ibuf+*ioff;
                      *ioff += arglen;
                      *(arglens+i) = arglen;
    

@@ -1217,7 +1217,7 @@ int get_arg_val_list(char *ibuf, int ilen, int *ioff,
sizeof(argvalue_len));
argvalue_len = ntohs(argvalue_len);
ioff += 2sizeof(argvalue_len);

  •                           if (ilen - *ioff >= argvalue_len) {
    
  •                           if (ilen - *ioff >= 0) {
                                      argvals[i] = ibuf+*ioff;
                                      *ioff += argvalue_len;
                                      *(argvallens+i) = argvalue_len;
    

But given that the existing code has cuss-words like ibuf+*ioff
(spaces are free, you know?) one can never tell what the author was thinking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant