fprintf(ofp, " e.g.:\n");
fprintf(ofp, " \"*\"\n");
fprintf(ofp, " \"app_component:na*\"\n");
- fprintf(ofp, " --probe [addr | symbol | symbol+offset]\n");
+ fprintf(ofp, " --probe (addr | symbol | symbol+offset)\n");
fprintf(ofp, " Dynamic probe.\n");
fprintf(ofp, " Addr and offset can be octal (0NNN...),\n");
fprintf(ofp, " decimal (NNN...) or hexadecimal (0xNNN...)\n");
- fprintf(ofp, " --function [addr | symbol | symbol+offset]\n");
+ fprintf(ofp, " --function (addr | symbol | symbol+offset)\n");
fprintf(ofp, " Dynamic function entry/return probe.\n");
fprintf(ofp, " Addr and offset can be octal (0NNN...),\n");
fprintf(ofp, " decimal (NNN...) or hexadecimal (0xNNN...)\n");
fprintf(ofp, " Expression examples:.\n");
fprintf(ofp, " \n");
fprintf(ofp, " 'intfield > 500 && intfield < 503'\n");
- fprintf(ofp, " '(stringfield == \"test\" || intfield != 10) && intfield > 33'\n");
+ fprintf(ofp, " '(strfield == \"test\" || intfield != 10) && intfield > 33'\n");
fprintf(ofp, " 'doublefield > 1.1 && intfield < 5.3'\n");
fprintf(ofp, " \n");
fprintf(ofp, " Wildcards are allowed at the end of strings:\n");
int i = 0;
char str[LTTNG_SYMBOL_NAME_LEN];
- while (i < LTTNG_SYMBOL_NAME_LEN && inputstr[i] != '\0') {
+ /*
+ * Loop up to LTTNG_SYMBOL_NAME_LEN minus one because the NULL bytes is
+ * added at the end of the loop so a the upper bound we avoid the overflow.
+ */
+ while (i < (LTTNG_SYMBOL_NAME_LEN - 1) && inputstr[i] != '\0') {
str[i] = toupper(inputstr[i]);
i++;
}
} else if (opt_userspace) {
dom.type = LTTNG_DOMAIN_UST;
/* Default. */
- dom.buf_type = LTTNG_BUFFER_PER_PID;
+ dom.buf_type = LTTNG_BUFFER_PER_UID;
} else {
ERR("Please specify a tracer (-k/--kernel or -u/--userspace)");
ret = CMD_ERROR;