|
@@ -22,6 +22,7 @@
|
|
|
#include <linux/uaccess.h>
|
|
|
#include <linux/uprobes.h>
|
|
|
#include <linux/namei.h>
|
|
|
+#include <linux/string.h>
|
|
|
|
|
|
#include "trace_probe.h"
|
|
|
|
|
@@ -263,16 +264,15 @@ static int create_trace_uprobe(int argc, char **argv)
|
|
|
|
|
|
/* setup a probe */
|
|
|
if (!event) {
|
|
|
- char *tail = strrchr(filename, '/');
|
|
|
+ char *tail;
|
|
|
char *ptr;
|
|
|
|
|
|
- ptr = kstrdup((tail ? tail + 1 : filename), GFP_KERNEL);
|
|
|
- if (!ptr) {
|
|
|
+ tail = kstrdup(kbasename(filename), GFP_KERNEL);
|
|
|
+ if (!tail) {
|
|
|
ret = -ENOMEM;
|
|
|
goto fail_address_parse;
|
|
|
}
|
|
|
|
|
|
- tail = ptr;
|
|
|
ptr = strpbrk(tail, ".-_");
|
|
|
if (ptr)
|
|
|
*ptr = '\0';
|