* [RFA] gdbtk-cmds.c bug fix and cleanup
@ 2001-04-02 16:29 Martin M. Hunt
0 siblings, 0 replies; only message in thread
From: Martin M. Hunt @ 2001-04-02 16:29 UTC (permalink / raw)
To: insight
There is an array overflow in gdb_loadfile() in gdbtk-cmds.c. This patch
fixes that, as well as some general cleanup.
I assume this comes under the obvious fix rule, so I'll go ahead and check
it in.
2001-04-02 Martin M. Hunt <hunt@redhat.com>
* generic/gdbtk-cmds.c (gdb_loadfile): Adjust size of text_argv
array to prevent writing out of range. Remove unused variables.
Fix formatting.
(gdb_get_tracepoint_info): Remove unused variable "fname".
(gdb_load_disassembly): Remove unused variable "widget".
(gdb_loc): Remove unused variable "sym".
(gdb_set_bp_addr): Remove unused variable "line".
(gdb_get_breakpoint_info): Remove unused variable "sym".
(get_frame_name): Remove unused variable "name".
Index: gdbtk/generic/gdbtk-cmds.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-cmds.c,v
retrieving revision 1.25
diff -u -p -r1.25 gdbtk-cmds.c
--- gdbtk-cmds.c 2001/03/13 23:31:14 1.25
+++ gdbtk-cmds.c 2001/04/02 23:23:19
@@ -2189,18 +2189,15 @@ gdb_tracepoint_exists_command (clientDat
}
static int
-gdb_get_tracepoint_info (clientData, interp, objc, objv)
- ClientData clientData;
- Tcl_Interp *interp;
- int objc;
- Tcl_Obj *CONST objv[];
+gdb_get_tracepoint_info (ClientData clientData, Tcl_Interp *interp,
+ int objc, Tcl_Obj *CONST objv[])
{
struct symtab_and_line sal;
int tpnum;
struct tracepoint *tp;
struct action_line *al;
Tcl_Obj *action_list;
- char *filename, *funcname, *fname;
+ char *filename, *funcname;
if (objc != 2)
{
@@ -2463,16 +2460,12 @@ gdb_disassemble (clientData, interp, obj
*/
static int
-gdb_load_disassembly (clientData, interp, objc, objv)
- ClientData clientData;
- Tcl_Interp *interp;
- int objc;
- Tcl_Obj *CONST objv[];
+gdb_load_disassembly (ClientData clientData, Tcl_Interp *interp,
+ int objc, Tcl_Obj *CONST objv[])
{
CORE_ADDR low, high;
struct disassembly_client_data client_data;
int mixed_source_and_assembly, ret_val, i;
- char *widget;
char *arg_ptr;
char *map_name;
@@ -3167,15 +3160,10 @@ compare_lines (mle1p, mle2p)
*/
static int
-gdb_loc (clientData, interp, objc, objv)
- ClientData clientData;
- Tcl_Interp *interp;
- int objc;
- Tcl_Obj *CONST objv[];
+gdb_loc (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *filename;
struct symtab_and_line sal;
- struct symbol *sym;
char *fname;
CORE_ADDR pc;
@@ -3467,11 +3455,8 @@ gdb_get_mem (clientData, interp, objc, o
* Additional memory will be allocated if needed. */
#define LTABLE_SIZE 20000
static int
-gdb_loadfile (clientData, interp, objc, objv)
- ClientData clientData;
- Tcl_Interp *interp;
- int objc;
- Tcl_Obj *CONST objv[];
+gdb_loadfile (ClientData clientData, Tcl_Interp *interp, int objc,
+ Tcl_Obj *CONST objv[])
{
char *file, *widget;
int linenumbers, ln, lnum, ltable_size;
@@ -3482,8 +3467,7 @@ gdb_loadfile (clientData, interp, objc,
long mtime = 0;
struct stat st;
char line[10000], line_num_buf[18];
- int prefix_len_1, prefix_len_2, cur_prefix_len, widget_len;
- char *text_argv[8];
+ char *text_argv[9];
Tcl_CmdInfo text_cmd;
@@ -3604,25 +3588,24 @@ gdb_loadfile (clientData, interp, objc,
while (fgets (line + 1, 9980, fp))
{
- char *p;
-
/* Look for DOS style \r\n endings, and if found,
* strip off the \r. We assume (for the sake of
* speed) that ALL lines in the file have DOS endings,
* or none do.
*/
- if (found_carriage_return) {
- char *p;
-
- p = strrchr(line, '\0') - 2;
- if (*p == '\r') {
- *p = '\n';
- *(p + 1) = '\0';
- } else {
- found_carriage_return = 0;
+ if (found_carriage_return)
+ {
+ char *p;
+
+ p = strrchr(line, '\0') - 2;
+ if (*p == '\r') {
+ *p = '\n';
+ *(p + 1) = '\0';
+ } else {
+ found_carriage_return = 0;
+ }
}
- }
sprintf (line_num_buf+2, "%d", ln);
if (ltable[ln >> 3] & (1 << (ln % 8)))
@@ -3831,15 +3814,12 @@ gdb_set_bp (clientData, interp, objc, ob
*/
static int
-gdb_set_bp_addr (clientData, interp, objc, objv)
- ClientData clientData;
- Tcl_Interp *interp;
- int objc;
- Tcl_Obj *CONST objv[];
-
+gdb_set_bp_addr (ClientData clientData, Tcl_Interp *interp, int objc,
+ Tcl_Obj *CONST objv[])
+
{
struct symtab_and_line sal;
- int line, ret, thread = -1;
+ int ret, thread = -1;
long addr;
struct breakpoint *b;
char *filename, *typestr, *buf;
@@ -4030,11 +4010,8 @@ gdb_find_bp_at_addr (clientData, interp,
*/
static int
-gdb_get_breakpoint_info (clientData, interp, objc, objv)
- ClientData clientData;
- Tcl_Interp *interp;
- int objc;
- Tcl_Obj *CONST objv[];
+gdb_get_breakpoint_info (ClientData clientData, Tcl_Interp *interp, int objc,
+ Tcl_Obj *CONST objv[])
{
struct symtab_and_line sal;
struct command_line *cmd;
@@ -4042,7 +4019,7 @@ gdb_get_breakpoint_info (clientData, int
struct breakpoint *b;
extern struct breakpoint *breakpoint_chain;
char *funcname, *filename;
- struct symbol *sym;
+
Tcl_Obj *new_obj;
if (objc != 2)
@@ -4242,10 +4219,7 @@ gdb_stack (clientData, interp, objc, obj
* This is stolen from print_frame_info in stack.c.
*/
static void
-get_frame_name (interp, list, fi)
- Tcl_Interp *interp;
- Tcl_Obj *list;
- struct frame_info *fi;
+get_frame_name (Tcl_Interp *interp, Tcl_Obj *list, struct frame_info *fi)
{
struct symtab_and_line sal;
struct symbol *func = NULL;
@@ -4302,8 +4276,6 @@ get_frame_name (interp, list, fi)
if (sal.symtab)
{
- char *name = NULL;
-
objv[0] = Tcl_NewStringObj (funname, -1);
Tcl_ListObjAppendElement (interp, list, objv[0]);
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2001-04-02 16:29 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-04-02 16:29 [RFA] gdbtk-cmds.c bug fix and cleanup Martin M. Hunt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).