From 9d5d78f5db99097912791d5506bd05b290e1376a Mon Sep 17 00:00:00 2001
From: David Price <davpric2@cisco.com>
Date: Mon, 23 Oct 2017 14:16:07 +0100
Subject: [PATCH] Stack smashing error reported.  Fixed by parameter changing
 int to uint16_t.  Not obvious!

---
 nfapi/nfapi_pnf.c                      | 2 +-
 nfapi/nfapi_vnf.c                      | 4 ++--
 openair2/LAYER2/MAC/eNB_scheduler_RA.c | 8 ++++----
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/nfapi/nfapi_pnf.c b/nfapi/nfapi_pnf.c
index 06e9912e703..4610382b679 100644
--- a/nfapi/nfapi_pnf.c
+++ b/nfapi/nfapi_pnf.c
@@ -1109,7 +1109,7 @@ int  pnf_phy_tx_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_tx_request_t* req)
   return 0;
 }
 
-extern void subtract_subframe(int *frameP, int *subframeP, int offset);
+extern void subtract_subframe(uint16_t *frameP, uint16_t *subframeP, int offset);
 
 int pnf_phy_ul_config_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_ul_config_request_t* req)
 {
diff --git a/nfapi/nfapi_vnf.c b/nfapi/nfapi_vnf.c
index 57b64bb0f85..e3c03ad4b3e 100644
--- a/nfapi/nfapi_vnf.c
+++ b/nfapi/nfapi_vnf.c
@@ -291,8 +291,8 @@ int vnf_unpack_vendor_extension_tlv(nfapi_tl_t* tl, uint8_t **ppReadPackedMessag
 void install_schedule_handlers(IF_Module_t *if_inst);
 extern int single_thread_flag;
 extern void init_eNB_afterRU(void);
-extern void add_subframe(int *frameP, int *subframeP, int offset);
-extern void subtract_subframe(int *frameP, int *subframeP, int offset);
+extern void add_subframe(uint16_t *frameP, uint16_t *subframeP, int offset);
+extern void subtract_subframe(uint16_t *frameP, uint16_t *subframeP, int offset);
 
 void oai_create_enb(void)
 {
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
index f1142733d1d..8d05c4aa8f6 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
@@ -63,20 +63,20 @@
 #include "T.h"
 
 
-void add_subframe(int *frameP, int *subframeP, int offset)
+void add_subframe(uint16_t *frameP, uint16_t *subframeP, int offset)
 {
     *frameP    = *frameP + ((*subframeP + offset) / 10);
 
     *subframeP = ((*subframeP + offset) % 10);
 }
 
-uint16_t sfnsf_add_subframe(int frameP, int subframeP, int offset)
+uint16_t sfnsf_add_subframe(uint16_t frameP, uint16_t subframeP, int offset)
 {
   add_subframe(&frameP, &subframeP, offset);
   return frameP<<4|subframeP;
 }
 
-void subtract_subframe(int *frameP, int *subframeP, int offset)
+void subtract_subframe(uint16_t *frameP, uint16_t *subframeP, int offset)
 {
   if (*subframeP < offset)
   {
@@ -85,7 +85,7 @@ void subtract_subframe(int *frameP, int *subframeP, int offset)
   *subframeP = (*subframeP+10-offset)%10;
 }
 
-uint16_t sfnsf_subtrace_subframe(int frameP, int subframeP, int offset)
+uint16_t sfnsf_subtract_subframe(uint16_t frameP, uint16_t subframeP, int offset)
 {
   subtract_subframe(&frameP, &subframeP, offset);
   return frameP<<4|subframeP;
-- 
GitLab