/*
- * Copyright (C) 2011 - David Goulet <david.goulet@polymtl.ca>
+ * Copyright (C) 2011 David Goulet <david.goulet@polymtl.ca>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2 only,
- * as published by the Free Software Foundation.
+ * SPDX-License-Identifier: GPL-2.0-only
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#define _LGPL_SOURCE
}
/* Check for symbol */
- if (isalpha(name[0])) {
+ if (isalpha(name[0]) || name[0] == '_') {
match = sscanf(opt, "%" LTTNG_SYMBOL_NAME_LEN_SCANF_IS_A_BROKEN_API "s",
name);
if (match == 1) {
/* Check for address */
match = sscanf(opt, "%" S_HEX_LEN_SCANF_IS_A_BROKEN_API "s", s_hex);
if (match > 0) {
- if (*s_hex == '\0') {
- ERR("Invalid probe address %s", s_hex);
+ /*
+ * Return an error if the first character of the tentative
+ * address is NULL or not a digit. It can be "0" if the address
+ * is in hexadecimal and can be 1 to 9 if it's in decimal.
+ */
+ if (*s_hex == '\0' || !isdigit(*s_hex)) {
+ ERR("Invalid probe description %s", s_hex);
ret = CMD_ERROR;
goto end;
}
lookup_method =
lttng_userspace_probe_location_lookup_method_tracepoint_sdt_create();
if (!lookup_method) {
- WARN("Failed to create ELF lookup method");
+ WARN("Failed to create SDT lookup method");
ret = CMD_ERROR;
goto end_string;
}
}
/*
- * Check if the file exists using access(2). If it does not, walk the
- * $PATH.
+ * Check if the file exists using access(2), If it does not,
+ * return an error.
*/
ret = access(real_target_path, F_OK);
if (ret) {
}
ret = print_missing_or_multiple_domains(
- opt_kernel + opt_userspace + opt_jul + opt_log4j + opt_python);
+ opt_kernel + opt_userspace + opt_jul + opt_log4j +
+ opt_python,
+ true);
if (ret) {
ret = CMD_ERROR;
goto end;