diff options
| author | jolsa@redhat.com <jolsa@redhat.com> | 2011-05-25 15:09:44 +0200 |
|---|---|---|
| committer | Jiri Olsa <Jiri Olsa jolsa@redhat.com> | 2011-05-29 19:05:36 +0200 |
| commit | 7a2b45ec4873e2d51e0d92197dc412a2edb21b32 (patch) | |
| tree | 9562adcdaa041bd0686ae916849d8fb51a9dd70e /etc | |
| parent | ec2866f5e5236a260b4d823a3435c2704f28bed5 (diff) | |
| download | latrace-7a2b45ec4873e2d51e0d92197dc412a2edb21b32.tar.gz latrace-7a2b45ec4873e2d51e0d92197dc412a2edb21b32.tar.xz latrace-7a2b45ec4873e2d51e0d92197dc412a2edb21b32.zip | |
args - replacing destination strings with void pointers
As per David Gilbert's email:
On library functions like strcpy() where there is a destination
string, latrace -A ends up trying to print out the
destination buffer which may be completely invalid.
Maybe it's worth doing the same trick that ltrace does, and just
declare the destination parameters as void*
until we handle bad characters somehow, replacing
destination char pointers with void pointers
Diffstat (limited to 'etc')
| -rw-r--r-- | etc/latrace.d/headers/stdio.h | 8 | ||||
| -rw-r--r-- | etc/latrace.d/headers/string.h | 16 |
2 files changed, 12 insertions, 12 deletions
diff --git a/etc/latrace.d/headers/stdio.h b/etc/latrace.d/headers/stdio.h index c0f37b8..eac2228 100644 --- a/etc/latrace.d/headers/stdio.h +++ b/etc/latrace.d/headers/stdio.h @@ -39,12 +39,12 @@ void setlinebuf(FILE *stream); int fprintf(FILE *stream, char *format); int printf(char *format); -int sprintf(char *s, char *format); +int sprintf(void *s, char *format); int vfprintf(FILE *s, char *format); int vprintf(char *format); -int vsprintf(char *s, char *format); -int snprintf(char *s, size_t maxlen, char *format); -int vsnprintf(char *s, size_t maxlen, char *format); +int vsprintf(void *s, char *format); +int snprintf(void *s, size_t maxlen, char *format); +int vsnprintf(void *s, size_t maxlen, char *format); int vasprintf(void *ptr, char *f); int __asprintf(void *ptr, char *fmt); int asprintf(void *ptr, char *fmt); diff --git a/etc/latrace.d/headers/string.h b/etc/latrace.d/headers/string.h index 98c2cb3..20445e7 100644 --- a/etc/latrace.d/headers/string.h +++ b/etc/latrace.d/headers/string.h @@ -12,10 +12,10 @@ void* rawmemchr(void *s, int c); void* memrchr(void *s, int c, size_t n); -char* strcpy(char *dest, char *src); -char* strncpy(char *dest, char *src, size_t n); -char* strcat(char *dest, char *src); -char* strncat(char *dest, char *src, size_t n); +char* strcpy(void *dest, char *src); +char* strncpy(void *dest, char *src, size_t n); +char* strcat(void *dest, char *src); +char* strncat(void *dest, char *src, size_t n); int strcmp(char *s1, char *s2); int strncmp(char *s1, char *s2, size_t n); int strcoll(char *s1, char *s2); @@ -76,10 +76,10 @@ int strncasecmp_l(char *s1, char *s2, size_t n, __locale_t loc); char* strsep(void *stringp, char *delim); int strverscmp(char *s1, char *s2); char* strsignal(int sig); -char* __stpcpy(char *dest, char *src); -char* stpcpy(char *dest, char *src); -char* __stpncpy(char *dest, char *src, size_t n); -char* stpncpy(char *dest, char *src, size_t n); ++char* __stpcpy(void *dest, char *src); ++char* stpcpy(void *dest, char *src); ++char* __stpncpy(void *dest, char *src, size_t n); ++char* stpncpy(void *dest, char *src, size_t n); char* strfry(char *string); void* memfrob(void *s, size_t n); char* basename(char *filename); |
