diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index c17e4f8918b70ae5d18e5b300b1591274a2c2bcb..697c720e35925eb0573594eef9ee770aa040c16d 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -18832,6 +18832,11 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct
 					cadence_is_ok = 0;
 				}
 
+				/* This check is only needed to satisfy the compiler that element_count can't cause an out of bounds */
+				if (element_count >= ARRAY_LEN(c)) {
+					element_count = ARRAY_LEN(c) - 1;
+				}
+
 				/* Ring cadences cannot be negative */
 				for (i = 0; i < element_count; i++) {
 					if (c[i] == 0) {
diff --git a/channels/sig_pri.c b/channels/sig_pri.c
index b009c4520e8881dc79f179efcc1eb6ecaaae0d49..1b228af99587cdefa78ba2aff9986e8cf9978aaa 100644
--- a/channels/sig_pri.c
+++ b/channels/sig_pri.c
@@ -4680,7 +4680,7 @@ static void sig_pri_handle_subcmds(struct sig_pri_span *pri, int chanpos, int ev
 					f.frametype = AST_FRAME_TEXT;
 					f.subclass.integer = 0;
 					f.offset = 0;
-					f.data.ptr = &subcmd->u.display.text;
+					f.data.ptr = (void *)&subcmd->u.display.text;
 					f.datalen = subcmd->u.display.length + 1;
 					ast_queue_frame(owner, &f);
 					ast_channel_unlock(owner);