aboutsummaryrefslogtreecommitdiff
path: root/ltrace.h
diff options
context:
space:
mode:
authorPaul Gilliam <pgilliam@us.ibm.com>2006-06-14 06:55:21 +0200
committerIan Wienand <ianw@debian.org>2006-06-14 06:55:21 +0200
commit76c61f15d7989bf7adffed2e46a44c34a80bd927 (patch)
treee03252ab3c418ed3e63b2129456528bc93f09d66 /ltrace.h
parentdcbfb8ee67323014098df9fb5a535d1099e2e2ec (diff)
downloadltrace-76c61f15d7989bf7adffed2e46a44c34a80bd927.tar.gz
Added Paul Gilliam's secure PLT patch
Diffstat (limited to 'ltrace.h')
-rw-r--r--ltrace.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/ltrace.h b/ltrace.h
index 66c1a2c..460167e 100644
--- a/ltrace.h
+++ b/ltrace.h
@@ -66,6 +66,13 @@ struct function {
struct function *next;
};
+enum toplt {
+ LS_TOPLT_NONE = 0, /* PLT not used for this symbol. */
+ LS_TOPLT_EXEC, /* PLT for this symbol is executable. */
+ LS_TOPLT_POINT /* PLT for this symbol is a non-executable. */
+};
+
+
extern struct function *list_of_functions;
extern char *PLTs_initialized_by_here;
@@ -74,9 +81,8 @@ struct library_symbol {
void *enter_addr;
struct breakpoint *brkpnt;
char needs_init;
- char static_plt2addr;
+ enum toplt plt_type;
char is_weak;
-
struct library_symbol *next;
};
@@ -193,7 +199,7 @@ extern long gimme_arg(enum tof type, struct process *proc, int arg_num);
extern void save_register_args(enum tof type, struct process *proc);
extern int umovestr(struct process *proc, void *addr, int len, void *laddr);
extern int ffcheck(void *maddr);
-extern void *plt2addr(struct process *, void **);
+extern void *sym2addr(struct process *, struct library_symbol *);
#if 0 /* not yet */
extern int umoven(struct process *proc, void *addr, int len, void *laddr);