lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <555CDB52.9000901@fb.com>
Date:	Wed, 20 May 2015 15:06:58 -0400
From:	Josef Bacik <jbacik@...com>
To:	Steven Rostedt <rostedt@...dmis.org>
CC:	<linux-kernel@...r.kernel.org>, <kernel-team@...com>
Subject: Re: [PATCH 3/5] trace-cmd: lookup syscall names in profile

On 05/20/2015 03:01 PM, Steven Rostedt wrote:
> On Wed, 20 May 2015 14:56:17 -0400
> Steven Rostedt <rostedt@...dmis.org> wrote:
>
>> On Wed, 20 May 2015 14:22:31 -0400
>> Josef Bacik <jbacik@...com> wrote:
>>
>>>> I'll keep this as is, but I'm going to add code to check for this
>>>> library, and go back to the default raw numbers if it doesn't exist.
>>>>
>>>
>>> Maybe we should think about autoconf at some point?  Thanks,
>>
>> Egad no! I hate autoconf. And so do many others!
>>
>> A simple test works fine. I don't want to require libaudit. Just warn
>> users that compile without it.
>>
>> I like to install trace-cmd on minimal setups (like embedded devices).
>> autoconf will kill that.
>>
>
> Here's what I did to fix it:
>
> -- Steve
>
> diff --git a/Makefile b/Makefile
> index 402f7114ab42..a8e63ad0c223 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -160,7 +160,7 @@ bindir_relative_SQ = $(subst ','\'',$(bindir_relative))
>   plugin_dir_SQ = $(subst ','\'',$(plugin_dir))
>   python_dir_SQ = $(subst ','\'',$(python_dir))
>
> -LIBS = -L. -ltracecmd -ldl -laudit
> +LIBS = -L. -ltracecmd -ldl
>   LIB_FILE = libtracecmd.a
>
>   PACKAGES= gtk+-2.0 libxml-2.0 gthread-2.0
> @@ -231,12 +231,25 @@ override CFLAGS += -D_GNU_SOURCE
>   ifndef NO_PTRACE
>   ifneq ($(call try-cc,$(SOURCE_PTRACE),),y)
>   	NO_PTRACE = 1
> -	CFLAGS += -DWARN_NO_PTRACE
> +	override CFLAGS += -DWARN_NO_PTRACE
>   endif
>   endif
>
>   ifdef NO_PTRACE
> -CFLAGS += -DNO_PTRACE
> +override CFLAGS += -DNO_PTRACE
> +endif
> +
> +ifndef NO_AUDIT
> +ifneq ($(call try-cc,$(SOURCE_AUDIT),-laudit),y)
> +	NO_AUDIT = 1
> +	override CFLAGS += -DWARN_NO_AUDIT
> +endif
> +endif
> +
> +ifdef NO_AUDIT
> +override CFLAGS += -DNO_AUDIT
> +else
> +LIBS += -laudit
>   endif
>
>   # Append required CFLAGS
> diff --git a/features.mk b/features.mk
> index cb2e8bd897be..9c9d63c13a23 100644
> --- a/features.mk
> +++ b/features.mk
> @@ -34,3 +34,21 @@ int main (void)
>   	return ret;
>   }
>   endef
> +
> +define SOURCE_AUDIT
> +#include <stdio.h>
> +#include <libaudit.h>
> +
> +int main (void)
> +{
> +	char *name;
> +	int ret;
> +	ret = audit_detect_machine();
> +	if (ret < 0)
> +		return ret;
> +	name = audit_syscall_to_name(1, ret);
> +	if (!name)
> +		return -1;
> +	return ret;
> +}
> +endef
> diff --git a/trace-profile.c b/trace-profile.c
> index 24f989715f05..640dca822d46 100644
> --- a/trace-profile.c
> +++ b/trace-profile.c
> @@ -23,11 +23,17 @@
>   #include <stdio.h>
>   #include <stdlib.h>
>   #include <string.h>
> +#ifndef NO_AUDIT
>   #include <libaudit.h>
> -
> +#endif
>   #include "trace-local.h"
>   #include "trace-hash.h"
>
> +#ifdef WARN_NO_AUDIT
> +# warning "lib audit not found, using raw syscalls "	\
> +	"(install libaudit-devel and try again)"
> +#endif
> +
>   #define TASK_STATE_TO_CHAR_STR "RSDTtXZxKWP"
>   #define TASK_STATE_MAX		1024
>
> @@ -848,6 +854,7 @@ static void func_print(struct trace_seq *s, struct event_hash *event_hash)
>
>   static void syscall_print(struct trace_seq *s, struct event_hash *event_hash)
>   {
> +#ifndef NO_AUDIT
>   	const char *name = NULL;
>   	int machine;
>
> @@ -860,6 +867,7 @@ static void syscall_print(struct trace_seq *s, struct event_hash *event_hash)
>   	trace_seq_printf(s, "syscall:%s", name);
>   	return;
>   fail:
> +#endif
>   	trace_seq_printf(s, "%s:%d", event_hash->event_data->event->name,
>   			 (int)event_hash->val);
>   }
>

Looks good to me, thanks,

Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ