FreeBSD Bugzilla – Attachment 200904 Details for
Bug 233343
[libedit] bind command reads out of bounds and sends output to stderr
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
libedit.patch
libedit.patch (text/plain), 1.90 KB, created by
Yuichiro NAITO
on 2019-01-08 06:11:52 UTC
(
hide
)
Description:
libedit.patch
Filename:
MIME Type:
Creator:
Yuichiro NAITO
Created:
2019-01-08 06:11:52 UTC
Size:
1.90 KB
patch
obsolete
>Index: lib/libedit/map.c >=================================================================== >--- lib/libedit/map.c (revision 342855) >+++ lib/libedit/map.c (working copy) >@@ -1260,6 +1260,7 @@ > el_bindings_t *bp, *ep; > int cmd; > int key; >+ int argi; > > if (argv == NULL) > return -1; >@@ -1267,7 +1268,7 @@ > map = el->el_map.key; > ntype = XK_CMD; > key = rem = 0; >- for (argc = 1; (p = argv[argc]) != NULL; argc++) >+ for (argi = 1; argi < argc && (p = argv[argi]) != NULL; argi++) > if (p[0] == '-') > switch (p[1]) { > case 'a': >@@ -1313,13 +1314,13 @@ > else > break; > >- if (argv[argc] == NULL) { >+ if (argi == argc) { > map_print_all_keys(el); > return 0; > } > if (key) >- in = argv[argc++]; >- else if ((in = parse__string(inbuf, argv[argc++])) == NULL) { >+ in = argv[argi++]; >+ else if ((in = parse__string(inbuf, argv[argi++])) == NULL) { > (void) fprintf(el->el_errfile, > "" FSTR ": Invalid \\ or ^ in instring.\n", > argv[0]); >@@ -1338,7 +1339,7 @@ > map[(unsigned char) *in] = ED_UNASSIGNED; > return 0; > } >- if (argv[argc] == NULL) { >+ if (argi == argc) { > if (key) > terminal_print_arrow(el, in); > else >@@ -1346,7 +1347,7 @@ > return 0; > } > #ifdef notyet >- if (argv[argc + 1] != NULL) { >+ if (argv[argi + 1] != NULL) { > bindkeymacro_usage(); > return -1; > } >@@ -1355,7 +1356,7 @@ > switch (ntype) { > case XK_STR: > case XK_EXE: >- if ((out = parse__string(outbuf, argv[argc])) == NULL) { >+ if ((out = parse__string(outbuf, argv[argi])) == NULL) { > (void) fprintf(el->el_errfile, > "" FSTR ": Invalid \\ or ^ in outstring.\n", argv[0]); > return -1; >@@ -1368,10 +1369,10 @@ > break; > > case XK_CMD: >- if ((cmd = parse_cmd(el, argv[argc])) == -1) { >+ if ((cmd = parse_cmd(el, argv[argi])) == -1) { > (void) fprintf(el->el_errfile, > "" FSTR ": Invalid command `" FSTR "'.\n", >- argv[0], argv[argc]); >+ argv[0], argv[argi]); > return -1; > } > if (key)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 233343
:
199366
|
200904
|
200905
|
201153
|
201348