void-packages/srcpkgs/open-iscsi/patches/fix-musl.patch

53 lines
1.3 KiB
Diff

Patch taken from alpinelinux:
http://git.alpinelinux.org/cgit/aports/commit/?id=3d5e7f0642490428f87b2aa499cd830043b42b18
Do not rely on optopt for checking if there is an error.
Instead check if getopt() returns a '?' and set a flag
that indicates an argument error.
Later check this flag and error out, if it is set.
--- a/usr/iscsiadm.c 2016-09-29 20:33:24.000000000 +0200
+++ b/usr/iscsiadm.c 2017-01-08 03:03:20.648496369 +0100
@@ -3263,7 +3263,8 @@
int packet_size=32, ping_count=1, ping_interval=0;
int do_discover = 0, sub_mode = -1;
int portal_type = -1;
int timeout = ISCSID_REQ_TIMEOUT;
+ int argerror = 0;
struct sigaction sa_old;
struct sigaction sa_new;
struct list_head ifaces;
@@ -3426,6 +3427,11 @@
break;
case 'h':
usage(0);
+ break;
+ case '?':
+ log_error("unrecognized character '%c'", optopt);
+ argerror = 1;
+ break;
}
if (name && value) {
@@ -3441,8 +3446,7 @@
}
}
- if (optopt) {
- log_error("unrecognized character '%c'", optopt);
+ if (argerror) {
rc = ISCSI_ERR_INVAL;
goto free_ifaces;
}
--- a/usr/mgmt_ipc.c
+++ b/usr/mgmt_ipc.c
@@ -22,6 +22,7 @@
* See the file COPYING included with this distribution for more details.
*/
#include <stdlib.h>
+#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <pwd.h>