| From b2efcc20617d6317f74c4acb2a6af5b765f20b34 Mon Sep 17 00:00:00 2001 |
| From: Khem Raj <raj.khem@gmail.com> |
| Date: Fri, 14 Jul 2017 13:11:25 -0700 |
| Subject: [PATCH] ir-ctl: Define TEMP_FAILURE_RETRY if undefined |
| |
| use strndup() instead of strndupa() which is not |
| universally available in C libraries |
| |
| Taken from AlpineLinux |
| |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| |
| --- |
| utils/ir-ctl/ir-ctl.c | 14 +++++++++++++- |
| 1 file changed, 13 insertions(+), 1 deletion(-) |
| |
| diff --git a/utils/ir-ctl/ir-ctl.c b/utils/ir-ctl/ir-ctl.c |
| index bc58cee..1a44011 100644 |
| --- a/utils/ir-ctl/ir-ctl.c |
| +++ b/utils/ir-ctl/ir-ctl.c |
| @@ -42,6 +42,16 @@ |
| # define _(string) string |
| #endif |
| |
| +/* taken from glibc unistd.h */ |
| +#ifndef TEMP_FAILURE_RETRY |
| +#define TEMP_FAILURE_RETRY(expression) \ |
| + (__extension__ \ |
| + ({ long int __result; \ |
| + do __result = (long int) (expression); \ |
| + while (__result == -1L && errno == EINTR); \ |
| + __result; })) |
| +#endif |
| + |
| # define N_(string) string |
| |
| |
| @@ -344,12 +354,14 @@ static struct file *read_scancode(const char *name) |
| return NULL; |
| } |
| |
| - pstr = strndupa(name, p - name); |
| + pstr = strndup(name, p - name); |
| |
| if (!protocol_match(pstr, &proto)) { |
| fprintf(stderr, _("error: protocol '%s' not found\n"), pstr); |
| + free(pstr); |
| return NULL; |
| } |
| + free(pstr); |
| |
| if (!strtoscancode(p + 1, &scancode)) { |
| fprintf(stderr, _("error: invalid scancode '%s'\n"), p + 1); |