loff_t *ppos)
 {
        struct ftrace_event_file *file = filp->private_data;
-       char *buf;
+       char buf[4] = "0";
 
-       if (file->flags & FTRACE_EVENT_FL_ENABLED) {
-               if (file->flags & FTRACE_EVENT_FL_SOFT_DISABLED)
-                       buf = "0*\n";
-               else if (file->flags & FTRACE_EVENT_FL_SOFT_MODE)
-                       buf = "1*\n";
-               else
-                       buf = "1\n";
-       } else
-               buf = "0\n";
+       if (file->flags & FTRACE_EVENT_FL_ENABLED &&
+           !(file->flags & FTRACE_EVENT_FL_SOFT_DISABLED))
+               strcpy(buf, "1");
+
+       if (file->flags & FTRACE_EVENT_FL_SOFT_DISABLED ||
+           file->flags & FTRACE_EVENT_FL_SOFT_MODE)
+               strcat(buf, "*");
+
+       strcat(buf, "\n");
 
        return simple_read_from_buffer(ubuf, cnt, ppos, buf, strlen(buf));
 }