mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-08-30 19:01:25 +02:00
38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
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);
|