projects
/
monky
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix for segfault in top_name stuff.
[monky]
/
src
/
core.c
diff --git
a/src/core.c
b/src/core.c
index
68997ad
..
e0e7218
100644
(file)
--- a/
src/core.c
+++ b/
src/core.c
@@
-171,8
+171,6
@@
struct text_object *construct_text_object(const char *s, const char *arg, long
NORM_ERR("acpiacadapter: arg is only used on linux");
#endif
}
NORM_ERR("acpiacadapter: arg is only used on linux");
#endif
}
- if(! obj->data.opaque)
- obj->data.opaque = strdup("AC");
#endif /* !__OpenBSD__ */
END OBJ(freq, 0)
get_cpu_count();
#endif /* !__OpenBSD__ */
END OBJ(freq, 0)
get_cpu_count();
@@
-279,8
+277,9
@@
struct text_object *construct_text_object(const char *s, const char *arg, long
obj->data.s = strndup(bat, text_buffer_size);
END OBJ(battery_bar, 0)
char bat[64];
obj->data.s = strndup(bat, text_buffer_size);
END OBJ(battery_bar, 0)
char bat[64];
- if (arg) {
- arg = scan_bar(obj, arg);
+
+ arg = scan_bar(obj, arg);
+ if (arg && strlen(arg)>0) {
sscanf(arg, "%63s", bat);
} else {
strcpy(bat, "BAT0");
sscanf(arg, "%63s", bat);
} else {
strcpy(bat, "BAT0");
@@
-372,18
+371,18
@@
struct text_object *construct_text_object(const char *s, const char *arg, long
scan_loadgraph_arg(obj, arg);
#endif /* X11 */
END OBJ(diskio, &update_diskio)
scan_loadgraph_arg(obj, arg);
#endif /* X11 */
END OBJ(diskio, &update_diskio)
- parse_diskio_arg(obj, arg);
+ parse_diskio_arg(obj, dev_name(arg));
END OBJ(diskio_read, &update_diskio)
END OBJ(diskio_read, &update_diskio)
- parse_diskio_arg(obj, arg);
+ parse_diskio_arg(obj, dev_name(arg));
END OBJ(diskio_write, &update_diskio)
END OBJ(diskio_write, &update_diskio)
- parse_diskio_arg(obj, arg);
+ parse_diskio_arg(obj, dev_name(arg));
#ifdef X11
END OBJ(diskiograph, &update_diskio)
#ifdef X11
END OBJ(diskiograph, &update_diskio)
- parse_diskiograph_arg(obj, arg);
+ parse_diskiograph_arg(obj, dev_name(arg));
END OBJ(diskiograph_read, &update_diskio)
END OBJ(diskiograph_read, &update_diskio)
- parse_diskiograph_arg(obj, arg);
+ parse_diskiograph_arg(obj, dev_name(arg));
END OBJ(diskiograph_write, &update_diskio)
END OBJ(diskiograph_write, &update_diskio)
- parse_diskiograph_arg(obj, arg);
+ parse_diskiograph_arg(obj, dev_name(arg));
#endif /* X11 */
END OBJ(color, 0)
#ifdef X11
#endif /* X11 */
END OBJ(color, 0)
#ifdef X11
@@
-542,6
+541,11
@@
struct text_object *construct_text_object(const char *s, const char *arg, long
parse_platform_sensor(obj, arg);
END OBJ_ARG(hwmon, 0, "hwmon needs argumanets")
parse_hwmon_sensor(obj, arg);
parse_platform_sensor(obj, arg);
END OBJ_ARG(hwmon, 0, "hwmon needs argumanets")
parse_hwmon_sensor(obj, arg);
+ END OBJ(addr, &update_net_stats)
+ parse_net_stat_arg(obj, arg, free_at_crash);
+ END OBJ(addrs, &update_net_stats)
+ parse_net_stat_arg(obj, arg, free_at_crash);
+#endif /* __linux__ */
END
/* we have four different types of top (top, top_mem, top_time and top_io). To
* avoid having almost-same code four times, we have this special
END
/* we have four different types of top (top, top_mem, top_time and top_io). To
* avoid having almost-same code four times, we have this special
@@
-552,12
+556,8
@@
struct text_object *construct_text_object(const char *s, const char *arg, long
if (!parse_top_args(s, arg, obj)) {
return NULL;
}
if (!parse_top_args(s, arg, obj)) {
return NULL;
}
- } else OBJ(addr, &update_net_stats)
- parse_net_stat_arg(obj, arg, free_at_crash);
- END OBJ(addrs, &update_net_stats)
- parse_net_stat_arg(obj, arg, free_at_crash);
-#endif /* __linux__ */
- END OBJ_ARG(tail, 0, "tail needs arguments")
+ } else
+ OBJ_ARG(tail, 0, "tail needs arguments")
init_tailhead("tail", arg, obj, free_at_crash);
END OBJ_ARG(head, 0, "head needs arguments")
init_tailhead("head", arg, obj, free_at_crash);
init_tailhead("tail", arg, obj, free_at_crash);
END OBJ_ARG(head, 0, "head needs arguments")
init_tailhead("head", arg, obj, free_at_crash);
@@
-657,6
+657,7
@@
struct text_object *construct_text_object(const char *s, const char *arg, long
obj->sub = malloc(sizeof(struct text_object));
extract_variable_text_internal(obj->sub, arg);
END OBJ(nodename, 0)
obj->sub = malloc(sizeof(struct text_object));
extract_variable_text_internal(obj->sub, arg);
END OBJ(nodename, 0)
+ END OBJ(nodename_short, 0)
END OBJ_ARG(cmdline_to_pid, 0, "cmdline_to_pid needs a command line as argument")
scan_cmdline_to_pid_arg(obj, arg, free_at_crash);
END OBJ_ARG(pid_chroot, 0, "pid_chroot needs a pid as argument")
END OBJ_ARG(cmdline_to_pid, 0, "cmdline_to_pid needs a command line as argument")
scan_cmdline_to_pid_arg(obj, arg, free_at_crash);
END OBJ_ARG(pid_chroot, 0, "pid_chroot needs a pid as argument")
@@
-786,9
+787,9
@@
struct text_object *construct_text_object(const char *s, const char *arg, long
obj->sub = malloc(sizeof(struct text_object));
extract_variable_text_internal(obj->sub, arg);
END OBJ(processes, &update_total_processes)
obj->sub = malloc(sizeof(struct text_object));
extract_variable_text_internal(obj->sub, arg);
END OBJ(processes, &update_total_processes)
-#ifdef __linux__
END OBJ(running_processes, &update_top)
top_running = 1;
END OBJ(running_processes, &update_top)
top_running = 1;
+#ifdef __linux__
END OBJ(threads, &update_threads)
END OBJ(running_threads, &update_stat)
#else
END OBJ(threads, &update_threads)
END OBJ(running_threads, &update_stat)
#else
@@
-1327,7
+1328,7
@@
int extract_variable_text_internal(struct text_object *retval, const char *const
strfold(p, 1);
} else if (*p == '#') {
char c;
strfold(p, 1);
} else if (*p == '#') {
char c;
- if (remove_comment(p, &c) && p > orig_p && c == '\n') {
+ if (remove_comment(p, &c) && p >= orig_p && c == '\n') {
/* if remove_comment removed a newline, we need to 'back up' with p */
p--;
}
/* if remove_comment removed a newline, we need to 'back up' with p */
p--;
}