[linux-merge]linux integration; annotated tag, v5.17-rc6, created. v5.17-rc6
by postmaster@open-mesh.org
The annotated tag, v5.17-rc6 has been created
at 5880f641c08a2f9788ccff499c368936438c5ae2 (tag)
tagging 7e57714cd0ad2d5bb90e50b5096a0e671dec1ef3 (commit)
replaces v5.17-rc5
tagged by Linus Torvalds
on Sun Feb 27 14:36:33 2022 -0800
- Shortlog ------------------------------------------------------------
Linux 5.17-rc6
-----BEGIN PGP SIGNATURE-----
iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAmIb/PEeHHRvcnZhbGRz
QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGugMH/R8icwG5gOjAuxBr
fuz9032ECVFS36Cy3ps9Eqgf5EdS4G6yz3joM4aNtp4B7e5FzI9lzBaHS8OAguNL
y7puFtBr9CywsnniJumZzciB9pEHmF/yyEKfMlRZA3JsRfLDacFstETp+duJnXoA
+s49IWsy1ot5zoherhDXcFLqDoFhLVU4hYwE1xpLpW/cllqmSnW8SDZMtWW1Ui/B
Of7zqINR4zBMmRjP4ymGq/ZrPWlFyWLdtOo0xxVoAQkeMgm33kfaaeGzfyK25FqR
JDGUZ7lkKvwz3PYh2hqJ7dc5K+vhJ18I+F1UmOiL6QAAUF/k8jq7i3Qaf6MKqh2Z
2v+A5k0=
=Hiar
-----END PGP SIGNATURE-----
-----------------------------------------------------------------------
--
linux integration
11 months, 1 week
[alfred] master: alfred: Ensure processed change_bat_iface packet is 0-terminated (6beca03)
by postmaster@open-mesh.org
Repository : ssh://git@diktynna/alfred
On branch : master
>---------------------------------------------------------------
commit 6beca03bdafd24cc46b4aa7ff2b87612471bdab0
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Sat Feb 19 08:51:28 2022 +0100
alfred: Ensure processed change_bat_iface packet is 0-terminated
A client sending a alfred_change_bat_iface_v0 packet to the alfred server
might have forgotten to 0-terminate the string. In this case, strdup in
alfred_change_bat_iface_v0 might read outside of the available buffer.
Fixes: b96cc742ef3e ("alfred: introduce 'change batman-adv interface' IPC call")
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
>---------------------------------------------------------------
6beca03bdafd24cc46b4aa7ff2b87612471bdab0
unix_sock.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/unix_sock.c b/unix_sock.c
index e9355ba..3894736 100644
--- a/unix_sock.c
+++ b/unix_sock.c
@@ -360,6 +360,7 @@ unix_sock_change_bat_iface(struct globals *globals,
goto err;
free(globals->mesh_iface);
+ change_bat_iface->bat_iface[sizeof(change_bat_iface->bat_iface) - 1] = '\0';
globals->mesh_iface = strdup(change_bat_iface->bat_iface);
ret = 0;
11 months, 2 weeks
[alfred] master: alfred: Ensure printed interfaces in status are 0-terminated (adeaabd)
by postmaster@open-mesh.org
Repository : ssh://git@diktynna/alfred
On branch : master
>---------------------------------------------------------------
commit adeaabdc909b774b1a507a180e909d8d0c0327b2
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Sat Feb 19 08:51:28 2022 +0100
alfred: Ensure printed interfaces in status are 0-terminated
A server sending a alfred_server_status_rep_v0 packet to the alfred client
might have forgotten to 0-terminate the string. In this case, printf in
alfred_client_server_status might read outside of the available buffer.
Fixes: 5a7d28b1866d ("alfred: introduce 'server status' IPC call")
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
>---------------------------------------------------------------
adeaabdc909b774b1a507a180e909d8d0c0327b2
client.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/client.c b/client.c
index 8b8b968..bbe29ee 100644
--- a/client.c
+++ b/client.c
@@ -425,6 +425,7 @@ int alfred_client_server_status(struct globals *globals)
break;
status_net_iface = (struct alfred_server_status_net_iface_v0 *)(buf + consumed);
+ status_net_iface->net_iface[sizeof(status_net_iface->net_iface) - 1] = 0;
printf("- interface: %s\n", status_net_iface->net_iface);
printf("\t- status: %s\n",
status_net_iface->active == 1 ? "active" : "inactive");
@@ -434,6 +435,7 @@ int alfred_client_server_status(struct globals *globals)
break;
status_bat_iface = (struct alfred_server_status_bat_iface_v0 *)(buf + consumed);
+ status_bat_iface->bat_iface[sizeof(status_bat_iface->bat_iface) - 1] = 0;
printf("- batman-adv interface: %s\n", status_bat_iface->bat_iface);
break;
}
11 months, 2 weeks
[alfred] master: alfred: Check server_status type before parsing packet (eec40c3)
by postmaster@open-mesh.org
Repository : ssh://git@diktynna/alfred
On branch : master
>---------------------------------------------------------------
commit eec40c3bb65e384b556e10b4cdc8f6c2b02b12bc
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Tue Feb 22 00:31:47 2022 +0100
alfred: Check server_status type before parsing packet
It might be that the server didn't respond with the correct type for
ALFRED_SERVER_STATUS. So just check it before parsing it.
Fixes: 5a7d28b1866d ("alfred: introduce 'server status' IPC call")
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
>---------------------------------------------------------------
eec40c3bb65e384b556e10b4cdc8f6c2b02b12bc
client.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/client.c b/client.c
index bbe29ee..81cdd7c 100644
--- a/client.c
+++ b/client.c
@@ -373,6 +373,11 @@ int alfred_client_server_status(struct globals *globals)
goto err;
}
+ if (status_rep->header.type != ALFRED_SERVER_STATUS) {
+ perror("alfred server_status type mismatch");
+ goto err;
+ }
+
if (status_rep->header.version != ALFRED_VERSION) {
perror("alfred version mismatch");
goto err;
11 months, 2 weeks
[alfred] master: alfred: introduce 'server status' IPC call (5a7d28b)
by postmaster@open-mesh.org
Repository : ssh://git@diktynna/alfred
On branch : master
>---------------------------------------------------------------
commit 5a7d28b1866d1ba13f570551cea177187f9e54ff
Author: Marek Lindner <mareklindner(a)neomailbox.ch>
Date: Sun Feb 20 19:36:14 2022 +0100
alfred: introduce 'server status' IPC call
The 'server status' call exports the 'mode' as well as interface
status via IPC. Both parameters can be modified at runtime via the
IPC and as such, the current configuration is dynamic and not
necessarily obvious.
The server status 'request' and 'reply' packet types are added
to allow the IPC client to initiate the status retrieval. The
server will respond with the 'reply' message.
The information is encapsulated in TLV data chunks allowing for
future backward compatible extension of the server status call.
Signed-off-by: Marek Lindner <mareklindner(a)neomailbox.ch>
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
>---------------------------------------------------------------
5a7d28b1866d1ba13f570551cea177187f9e54ff
alfred.h | 2 +
client.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
main.c | 9 ++++-
man/alfred.8 | 3 ++
packet.h | 68 +++++++++++++++++++++++++++++++++
unix_sock.c | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 307 insertions(+), 1 deletion(-)
diff --git a/alfred.h b/alfred.h
index 2943c4c..2d98a30 100644
--- a/alfred.h
+++ b/alfred.h
@@ -93,6 +93,7 @@ enum clientmode {
CLIENT_MODESWITCH,
CLIENT_CHANGE_INTERFACE,
CLIENT_CHANGE_BAT_IFACE,
+ CLIENT_SERVER_STATUS,
};
struct interface {
@@ -155,6 +156,7 @@ int alfred_client_set_data(struct globals *globals);
int alfred_client_modeswitch(struct globals *globals);
int alfred_client_change_interface(struct globals *globals);
int alfred_client_change_bat_iface(struct globals *globals);
+int alfred_client_server_status(struct globals *globals);
/* recv.c */
int recv_alfred_packet(struct globals *globals, struct interface *interface,
int recv_sock);
diff --git a/client.c b/client.c
index b5d8943..8b8b968 100644
--- a/client.c
+++ b/client.c
@@ -325,3 +325,123 @@ int alfred_client_change_bat_iface(struct globals *globals)
return 0;
}
+
+int alfred_client_server_status(struct globals *globals)
+{
+ struct alfred_server_status_net_iface_v0 *status_net_iface;
+ struct alfred_server_status_bat_iface_v0 *status_bat_iface;
+ struct alfred_server_status_op_mode_v0 *status_op_mode;
+ struct alfred_server_status_req_v0 status_req;
+ struct alfred_server_status_rep_v0 *status_rep;
+ int ret, tlvsize, headsize, len, consumed;
+ struct alfred_tlv *status_tlv;
+ uint8_t buf[MAX_PAYLOAD];
+
+ if (unix_sock_open_client(globals))
+ return -1;
+
+ len = sizeof(status_req);
+ memset(&status_req, 0, len);
+
+ status_req.header.type = ALFRED_SERVER_STATUS;
+ status_req.header.version = ALFRED_VERSION;
+ status_req.header.length = 0;
+
+ ret = write(globals->unix_sock, (unsigned char *)&status_req, len);
+ if (ret != len)
+ fprintf(stderr, "%s: only wrote %d of %d bytes: %s\n",
+ __func__, ret, len, strerror(errno));
+
+ len = read(globals->unix_sock, buf, sizeof(buf));
+ if (len <= 0) {
+ perror("read from unix socket failed");
+ goto err;
+ }
+
+ ret = -1;
+ status_rep = (struct alfred_server_status_rep_v0 *)buf;
+
+ /* drop too small packets */
+ headsize = sizeof(status_rep->header);
+ if (len < headsize) {
+ perror("unexpected header size received from unix socket");
+ goto err;
+ }
+
+ if ((len - headsize) < ((int)ntohs(status_rep->header.length))) {
+ perror("unexpected packet size received from unix socket");
+ goto err;
+ }
+
+ if (status_rep->header.version != ALFRED_VERSION) {
+ perror("alfred version mismatch");
+ goto err;
+ }
+
+ headsize = ntohs(status_rep->header.length);
+
+ if (headsize < (int)(sizeof(*status_rep) - sizeof(status_rep->header)))
+ goto err;
+
+ consumed = sizeof(*status_rep);
+
+ while (len - consumed > 0) {
+ if (len - consumed < (int)sizeof(*status_tlv))
+ break;
+
+ status_tlv = (struct alfred_tlv *)(buf + consumed);
+
+ if (status_tlv->version != ALFRED_VERSION)
+ break;
+
+ tlvsize = ntohs(status_tlv->length);
+ tlvsize += sizeof(*status_tlv);
+
+ if (len - consumed < tlvsize)
+ break;
+
+ switch (status_tlv->type) {
+ case ALFRED_SERVER_OP_MODE:
+ if (tlvsize != sizeof(*status_op_mode))
+ break;
+
+ status_op_mode = (struct alfred_server_status_op_mode_v0 *)(buf + consumed);
+
+ switch (status_op_mode->mode) {
+ case ALFRED_MODESWITCH_SECONDARY:
+ printf("- mode: secondary\n");
+ break;
+ case ALFRED_MODESWITCH_PRIMARY:
+ printf("- mode: primary\n");
+ break;
+ default:
+ printf("- mode: unknown\n");
+ break;
+ }
+
+ break;
+ case ALFRED_SERVER_NET_IFACE:
+ if (tlvsize != sizeof(*status_net_iface))
+ break;
+
+ status_net_iface = (struct alfred_server_status_net_iface_v0 *)(buf + consumed);
+ printf("- interface: %s\n", status_net_iface->net_iface);
+ printf("\t- status: %s\n",
+ status_net_iface->active == 1 ? "active" : "inactive");
+ break;
+ case ALFRED_SERVER_BAT_IFACE:
+ if (tlvsize != sizeof(*status_bat_iface))
+ break;
+
+ status_bat_iface = (struct alfred_server_status_bat_iface_v0 *)(buf + consumed);
+ printf("- batman-adv interface: %s\n", status_bat_iface->bat_iface);
+ break;
+ }
+
+ consumed += tlvsize;
+ }
+
+err:
+ unix_sock_close(globals);
+ return 0;
+}
diff --git a/main.c b/main.c
index d40a0cc..68d6efd 100644
--- a/main.c
+++ b/main.c
@@ -38,6 +38,7 @@ static void alfred_usage(void)
printf(" secondary switch daemon to mode secondary\n");
printf(" -I, --change-interface [interface] change to the specified interface(s)\n");
printf(" -B, --change-bat-iface [interface] change to the specified batman-adv interface\n");
+ printf(" -S, --server-status request server status info such as mode & interfaces\n");
printf("\n");
printf("server mode options:\n");
printf(" -i, --interface specify the interface (or comma separated list of interfaces) to listen on\n");
@@ -162,6 +163,7 @@ static struct globals *alfred_init(int argc, char *argv[])
{"modeswitch", required_argument, NULL, 'M'},
{"change-interface", required_argument, NULL, 'I'},
{"change-bat-iface", required_argument, NULL, 'B'},
+ {"server-status", required_argument, NULL, 'S'},
{"unix-path", required_argument, NULL, 'u'},
{"update-command", required_argument, NULL, 'c'},
{"version", no_argument, NULL, 'v'},
@@ -196,7 +198,7 @@ static struct globals *alfred_init(int argc, char *argv[])
time_random_seed();
- while ((opt = getopt_long(argc, argv, "ms:r:hi:b:vV:M:I:B:u:dc:p:4:f", long_options,
+ while ((opt = getopt_long(argc, argv, "ms:r:hi:b:vV:M:I:B:Su:dc:p:4:f", long_options,
&opt_ind)) != -1) {
switch (opt) {
case 'r':
@@ -258,6 +260,9 @@ static struct globals *alfred_init(int argc, char *argv[])
globals->clientmode = CLIENT_CHANGE_BAT_IFACE;
globals->mesh_iface = strdup(optarg);
break;
+ case 'S':
+ globals->clientmode = CLIENT_SERVER_STATUS;
+ break;
case 'u':
globals->unix_path = optarg;
break;
@@ -321,6 +326,8 @@ int main(int argc, char *argv[])
return alfred_client_change_interface(globals);
case CLIENT_CHANGE_BAT_IFACE:
return alfred_client_change_bat_iface(globals);
+ case CLIENT_SERVER_STATUS:
+ return alfred_client_server_status(globals);
}
return 0;
diff --git a/man/alfred.8 b/man/alfred.8
index 74814e0..cf0eafc 100644
--- a/man/alfred.8
+++ b/man/alfred.8
@@ -94,6 +94,9 @@ Change the alfred server to use the new \fBinterface\fP(s)
.TP
\fB\-B\fP, \fB\-\-change\-bat\-iface\fP \fIinterface\fP
Change the alfred server to use the new \fBbatman-adv interface\fP
+.TP
+\fB\-S\fP, \fB\-\-server\-status\fP
+Request server status information such as mode & interfaces\fP
.
.SH SERVER OPTIONS
.TP
diff --git a/packet.h b/packet.h
index 94c6a77..0c1a2eb 100644
--- a/packet.h
+++ b/packet.h
@@ -69,6 +69,7 @@ enum alfred_packet_type {
ALFRED_MODESWITCH = 5,
ALFRED_CHANGE_INTERFACE = 6,
ALFRED_CHANGE_BAT_IFACE = 7,
+ ALFRED_SERVER_STATUS = 8,
};
/* packets */
@@ -159,6 +160,73 @@ struct alfred_change_interface_v0 {
struct alfred_change_bat_iface_v0 {
struct alfred_tlv header;
char bat_iface[IFNAMSIZ];
+};
+
+/**
+ * enum alfred_packet_type - Types of packet stored in the main alfred_tlv
+ * @ALFRED_SERVER_MODE: Contains alfred mode information*
+ * @ALFRED_SERVER_NET_IFACE: Contains alfred network interface information*
+ * @ALFRED_SERVER_BAT_IFACE: Contains alfred batman interface information*
+ */
+enum alfred_server_status_type {
+ ALFRED_SERVER_OP_MODE = 0,
+ ALFRED_SERVER_NET_IFACE = 1,
+ ALFRED_SERVER_BAT_IFACE = 2,
+};
+
+/**
+ * struct alfred_server_status_req_v0 - server status request
+ * @header: TLV header describing the complete packet
+ *
+ * Sent to the daemon by client
+ */
+struct alfred_server_status_req_v0 {
+ struct alfred_tlv header;
+} __packed;
+
+/**
+ * struct alfred_server_status_op_mode_v0 - server op mode status information
+ * @op_mode: active op mode
+ *
+ * Sent to the client by daemon in response to status request
+ */
+struct alfred_server_status_op_mode_v0 {
+ struct alfred_tlv header;
+ uint8_t mode;
+} __packed;
+
+/**
+ * struct alfred_server_status_net_iface_v0 - server net iface status information
+ * @net_iface: configured network interface
+ * @active: network interface active/inactive status info
+ *
+ * Sent to the client by daemon in response to status request
+ */
+struct alfred_server_status_net_iface_v0 {
+ struct alfred_tlv header;
+ char net_iface[IFNAMSIZ];
+ uint8_t active;
+} __packed;
+
+/**
+ * struct alfred_server_status_bat_iface_v0 - server bat iface status information
+ * @op_mode: configured batman interface
+ *
+ * Sent to the client by daemon in response to status request
+ */
+struct alfred_server_status_bat_iface_v0 {
+ struct alfred_tlv header;
+ char bat_iface[IFNAMSIZ];
+} __packed;
+
+/**
+ * struct alfred_server_status_rep_v0 - server status reply
+ * @header: TLV header describing the complete packet
+ *
+ * Sent by the daemon to client in response to status request
+ */
+struct alfred_server_status_rep_v0 {
+ struct alfred_tlv header;
} __packed;
/**
diff --git a/unix_sock.c b/unix_sock.c
index 8c2b762..e9355ba 100644
--- a/unix_sock.c
+++ b/unix_sock.c
@@ -368,6 +368,109 @@ err:
return ret;
}
+static int unix_sock_server_status(struct globals *globals, int client_sock)
+{
+ struct alfred_server_status_net_iface_v0 *status_net_iface;
+ struct alfred_server_status_bat_iface_v0 *status_bat_iface;
+ struct alfred_server_status_op_mode_v0 *status_op_mode;
+ struct alfred_server_status_rep_v0 *status_rep;
+ struct interface *interface;
+ uint8_t buf[MAX_PAYLOAD];
+ int ret = -1;
+ int len = 0;
+
+ /* too large? - should never happen */
+ if (sizeof(*status_rep) + len > sizeof(buf)) {
+ fprintf(stderr, "ERROR: send buffer too small for server_status\n");
+ goto err;
+ }
+
+ status_rep = (struct alfred_server_status_rep_v0 *)buf;
+ status_rep->header.type = ALFRED_SERVER_STATUS;
+ status_rep->header.version = ALFRED_VERSION;
+
+ len += sizeof(*status_rep);
+
+ /* too large? - should never happen */
+ if (sizeof(*status_op_mode) + len > sizeof(buf)) {
+ fprintf(stderr, "ERROR: send buffer too small for server_status op_mode\n");
+ goto err;
+ }
+
+ status_op_mode = (struct alfred_server_status_op_mode_v0 *)(buf + len);
+ status_op_mode->header.type = ALFRED_SERVER_OP_MODE;
+ status_op_mode->header.version = ALFRED_VERSION;
+ status_op_mode->header.length = FIXED_TLV_LEN(*status_op_mode);
+
+ switch (globals->opmode) {
+ case OPMODE_SECONDARY:
+ status_op_mode->mode = ALFRED_MODESWITCH_SECONDARY;
+ break;
+ case OPMODE_PRIMARY:
+ status_op_mode->mode = ALFRED_MODESWITCH_PRIMARY;
+ break;
+ default:
+ break;
+ }
+
+ len += sizeof(*status_op_mode);
+
+ list_for_each_entry(interface, &globals->interfaces, list) {
+ /* too large? - should never happen */
+ if (sizeof(*status_net_iface) + len > sizeof(buf)) {
+ fprintf(stderr, "ERROR: send buffer too small for server_status iface\n");
+ goto err;
+ }
+
+ status_net_iface = (struct alfred_server_status_net_iface_v0 *)(buf + len);
+ status_net_iface->header.type = ALFRED_SERVER_NET_IFACE;
+ status_net_iface->header.version = ALFRED_VERSION;
+ status_net_iface->header.length = FIXED_TLV_LEN(*status_net_iface);
+
+ strncpy(status_net_iface->net_iface, interface->interface,
+ sizeof(status_net_iface->net_iface));
+ status_net_iface->net_iface[sizeof(status_net_iface->net_iface) - 1] = '\0';
+ if (interface->netsock > -1)
+ status_net_iface->active = 1;
+ else
+ status_net_iface->active = 0;
+
+ len += sizeof(*status_net_iface);
+ }
+
+ /* too large? - should never happen */
+ if (sizeof(*status_bat_iface) + len > sizeof(buf)) {
+ fprintf(stderr, "ERROR: send buffer too small for server_status bat_iface\n");
+ goto err;
+ }
+
+ status_bat_iface = (struct alfred_server_status_bat_iface_v0 *)(buf + len);
+ status_bat_iface->header.type = ALFRED_SERVER_BAT_IFACE;
+ status_bat_iface->header.version = ALFRED_VERSION;
+ status_bat_iface->header.length = FIXED_TLV_LEN(*status_bat_iface);
+
+ strncpy(status_bat_iface->bat_iface, globals->mesh_iface,
+ sizeof(status_bat_iface->bat_iface));
+ status_bat_iface->bat_iface[sizeof(status_bat_iface->bat_iface) - 1] = '\0';
+
+ len += sizeof(*status_bat_iface);
+ status_rep->header.length = htons(len - sizeof(status_rep->header));
+
+ ret = write(client_sock, buf, len);
+ if (ret != len) {
+ fprintf(stderr, "%s: only wrote %d of %d bytes: %s\n",
+ __func__, ret, len, strerror(errno));
+ ret = -1;
+ goto err;
+ }
+
+ ret = 0;
+
+err:
+ close(client_sock);
+ return ret;
+}
+
int unix_sock_read(struct globals *globals)
{
int client_sock;
@@ -430,6 +533,9 @@ int unix_sock_read(struct globals *globals)
(struct alfred_change_bat_iface_v0 *)packet,
client_sock);
break;
+ case ALFRED_SERVER_STATUS:
+ ret = unix_sock_server_status(globals, client_sock);
+ break;
default:
/* unknown packet type */
ret = -1;
11 months, 2 weeks
[linux-merge]linux integration; annotated tag, v5.17-rc5, created. v5.17-rc5
by postmaster@open-mesh.org
The annotated tag, v5.17-rc5 has been created
at fb245665706076547ba72af611b41bc38c3ab73a (tag)
tagging cfb92440ee71adcc2105b0890bb01ac3cddb8507 (commit)
replaces v5.17-rc4
tagged by Linus Torvalds
on Sun Feb 20 13:07:20 2022 -0800
- Shortlog ------------------------------------------------------------
Linux 5.17-rc5
-----BEGIN PGP SIGNATURE-----
iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAmISrYgeHHRvcnZhbGRz
QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGg20IAKDZr7rfSHBopjQV
Cocw744tom0XuxpvSZpp2GGOOXF+tkswcNNaRIrbGOl1mkyxA7eBZCTMpDeDS9aQ
wB0D0Gxx8QBAJp4KgB1W7TB+hIGes/rs8Ve+6iO4ulLLdCVWX/q2boI0aZ7QX9O9
qNi8OsoZQtk6falRvciZFHwV5Av1p2Sy1AW57udQ7DvJ4H98AfKf1u8/z208WWW8
1ixC+qJxQcUcM9vI+7P9Tt7NbFSKv8SvAmqjFY7P+DxQAsVw6KXoqVXykDzeOv0t
fUNOE/t0oFZafwtn8h7KBQnwS9lH03+3KkslVZs+iMFyUj/Bar+NVVyKoDhWXtVg
/PuMhEg=
=eU1o
-----END PGP SIGNATURE-----
-----------------------------------------------------------------------
--
linux integration
11 months, 2 weeks
[alfred] master: alfred: Ensure processed change_iface packet is 0-terminated (d2d27e4)
by postmaster@open-mesh.org
Repository : ssh://git@diktynna/alfred
On branch : master
>---------------------------------------------------------------
commit d2d27e4b9d697928d21dfa5c79908618ef8b56ac
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Sat Feb 19 08:51:28 2022 +0100
alfred: Ensure processed change_iface packet is 0-terminated
A client sending a alfred_change_interface_v0 packet to the alfred server
might have forgotten to 0-terminate the string. In this case, strstr in
unix_sock_change_iface might read outside of the available buffer.
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
>---------------------------------------------------------------
d2d27e4b9d697928d21dfa5c79908618ef8b56ac
unix_sock.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/unix_sock.c b/unix_sock.c
index bc39199..8c2b762 100644
--- a/unix_sock.c
+++ b/unix_sock.c
@@ -329,6 +329,8 @@ unix_sock_change_iface(struct globals *globals,
if (len < (int)(sizeof(*change_iface) - sizeof(change_iface->header)))
goto err;
+ change_iface->ifaces[sizeof(change_iface->ifaces) - 1] = '\0';
+
if (globals->opmode == OPMODE_SECONDARY) {
if (strstr(change_iface->ifaces, ",") != NULL) {
ret = -EINVAL;
11 months, 2 weeks
[alfred] master: alfred: Ensure evaluation order in FIXED_TLV_LEN (f9cf9d2)
by postmaster@open-mesh.org
Repository : ssh://git@diktynna/alfred
On branch : master
>---------------------------------------------------------------
commit f9cf9d22c8bdc8c675c5080d9a26a21082aa1d77
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Sun Feb 20 10:09:22 2022 +0100
alfred: Ensure evaluation order in FIXED_TLV_LEN
If FIXED_LENGTH would contain an actual evaluatable statement like
"*object" then the order of evaluation would not be correct in the second
part of the formula for FIXED_LENGTH. A simple parenthesis avoids this
problem.
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
>---------------------------------------------------------------
f9cf9d22c8bdc8c675c5080d9a26a21082aa1d77
alfred.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/alfred.h b/alfred.h
index f348c66..2943c4c 100644
--- a/alfred.h
+++ b/alfred.h
@@ -31,7 +31,7 @@
#define NO_FILTER -1
#define FIXED_TLV_LEN(__tlv_type) \
- htons(sizeof(__tlv_type) - sizeof(__tlv_type.header))
+ htons(sizeof(__tlv_type) - sizeof((__tlv_type).header))
enum data_source {
SOURCE_LOCAL = 0,
11 months, 2 weeks
[linux-merge]linux integration; annotated tag, v5.17-rc4, created. v5.17-rc4
by postmaster@open-mesh.org
The annotated tag, v5.17-rc4 has been created
at f95462f2d3d47839c81c8c5985fb49e0b02e97d3 (tag)
tagging 754e0b0e35608ed5206d6a67a791563c631cec07 (commit)
replaces v5.17-rc3
tagged by Linus Torvalds
on Sun Feb 13 12:13:30 2022 -0800
- Shortlog ------------------------------------------------------------
Linux 5.17-rc4
-----BEGIN PGP SIGNATURE-----
iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAmIJZmoeHHRvcnZhbGRz
QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGZdoH/04d8zUhM3Fd3ACB
V/ONtOXmkfP2mEJSjb7cXTN1EM2SlOBdSnSsEw09FtGhjHABjOnLho4J5ixk9TH8
zNMNI3EMksM2T9KadHwxv8Vvp1LTrWRzMbws8tOCPA0RkOpikJfClC8CzRAyidJ3
cAbbDH/Jl1GnVZ8bpKmv2auYt+kNVGb0cwJ2W8phCwwkL7sLky5tgYeaGiJEXbJf
Tfi/3qtFdmYjD8wtYnCfzjnB7suG5nF7rGEnxCIxNi+IA4DieUv2c1KchuoaBfT9
df364VjKaGT3j+GB07ksQ/8mkwWiRXsCzOXAyMZSZaWjdMD4aAhCTJak5j7/TvGC
wtgHPww=
=/CMW
-----END PGP SIGNATURE-----
-----------------------------------------------------------------------
--
linux integration
11 months, 3 weeks
[linux-merge]linux integration; annotated tag, v5.17-rc3, created. v5.17-rc3
by postmaster@open-mesh.org
The annotated tag, v5.17-rc3 has been created
at 48765f61ad6b9c0344f89d9332050c72df3ff43c (tag)
tagging dfd42facf1e4ada021b939b4e19c935dcdd55566 (commit)
replaces v5.17-rc2
tagged by Linus Torvalds
on Sun Feb 6 12:20:50 2022 -0800
- Shortlog ------------------------------------------------------------
Linux 5.17-rc3
-----BEGIN PGP SIGNATURE-----
iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAmIALaIeHHRvcnZhbGRz
QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiG4h8IAIiOTrs2eU5wqECz
KTLPZJ6vLz+LeEUHg3Dff7TURfFHkarp7NRuCg5ohQuX/xQlobId0A20QjArNEfP
Ub6SHseDYJ75H4mBL57MoSdCmgVywjCjsBnQiAUBCnYiLoehu95INzdYfA009e0N
Qmi2aAdqFNRn6K28wpaSG7qpreV7Nnr6oOP1phJdFJ8rSEZj1VyKGDD8KhxvrUio
tnTt9OUjJrwtftgqeSWulWyb4QrA6qW9R0zdxnCNv0v+yvbRfHqqYNg/lGquybjY
pyY1GFHpfixTktcHEAVFWylKa5wYIwRW1d0J6BNyQ2j+3gvbrs9fYNDgGwPfrOgK
BOrq7Gs=
=Hdad
-----END PGP SIGNATURE-----
-----------------------------------------------------------------------
--
linux integration
11 months, 4 weeks