X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=sidebyside;f=src%2Fbin%2Flttng-sessiond%2Flttng-syscall.c;h=b6a9a53acd757dc1888231674103ea74583da97b;hb=a7d0c51c52357e361b9834d04d39a40b16edb46f;hp=9a45a8af7933ff232729d344779599887ff9cb41;hpb=0dbc2034c9571ec342d382bf87231775563f8624;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/lttng-syscall.c b/src/bin/lttng-sessiond/lttng-syscall.c index 9a45a8af7..b6a9a53ac 100644 --- a/src/bin/lttng-sessiond/lttng-syscall.c +++ b/src/bin/lttng-sessiond/lttng-syscall.c @@ -1,24 +1,13 @@ /* - * Copyright (C) 2014 - David Goulet + * Copyright (C) 2014 David Goulet * - * 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 #include -#include #include #include @@ -39,7 +28,7 @@ static size_t syscall_table_nb_entry; * Return 0 on success and the syscall table is allocated. On error, a negative * value is returned. */ -int syscall_init_table(void) +int syscall_init_table(int tracer_fd) { int ret, fd, err; size_t nbmem; @@ -50,9 +39,13 @@ int syscall_init_table(void) uint32_t bitness; char name[SYSCALL_NAME_LEN]; +#if (SYSCALL_NAME_LEN == 255) +#define SYSCALL_NAME_LEN_SCANF_IS_A_BROKEN_API "254" +#endif + DBG3("Syscall init system call table"); - fd = kernctl_syscall_list(kernel_tracer_fd); + fd = kernctl_syscall_list(tracer_fd); if (fd < 0) { ret = fd; PERROR("kernelctl syscall list"); @@ -76,7 +69,7 @@ int syscall_init_table(void) while (fscanf(fp, "syscall { index = %zu; \ - name = %" XSTR(SYSCALL_NAME_LEN) "[^;]; \ + name = %" SYSCALL_NAME_LEN_SCANF_IS_A_BROKEN_API "[^;]; \ bitness = %u; };\n", &index, name, &bitness) == 3) { at_least_one_syscall = true;