Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG-RAN
Commits
d840c9db
Commit
d840c9db
authored
2 years ago
by
Daniel Andrade
Committed by
Roberto Louro Magueta
2 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix buffer overflow for DL channel estimation
parent
15a375e8
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
17 deletions
+16
-17
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+16
-17
No files found.
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
d840c9db
...
@@ -579,8 +579,8 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
...
@@ -579,8 +579,8 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
ue
->
Mod_id
,
nr_slot_rx
,
harq_pid
,
dlsch0_harq
->
status
,
pdsch_start_rb
,
pdsch_nb_rb
,
s0
,
s1
,
dlsch0
->
dlsch_config
.
dlDmrsSymbPos
,
dlsch0
->
Nl
);
ue
->
Mod_id
,
nr_slot_rx
,
harq_pid
,
dlsch0_harq
->
status
,
pdsch_start_rb
,
pdsch_nb_rb
,
s0
,
s1
,
dlsch0
->
dlsch_config
.
dlDmrsSymbPos
,
dlsch0
->
Nl
);
const
uint32_t
pdsch_est_size
=
((
ue
->
frame_parms
.
symbols_per_slot
*
ue
->
frame_parms
.
ofdm_symbol_size
+
15
)
/
16
)
*
16
;
const
uint32_t
pdsch_est_size
=
((
ue
->
frame_parms
.
symbols_per_slot
*
ue
->
frame_parms
.
ofdm_symbol_size
+
15
)
/
16
)
*
16
;
__attribute__
((
aligned
(
32
)))
int32_t
pdsch_dl_ch_estimates
[
ue
->
frame_parms
.
nb_antennas_rx
][
pdsch_est_size
];
__attribute__
((
aligned
(
32
)))
int32_t
pdsch_dl_ch_estimates
[
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
][
pdsch_est_size
];
memset
(
pdsch_dl_ch_estimates
,
0
,
sizeof
(
int32_t
)
*
ue
->
frame_parms
.
nb_antennas_rx
*
pdsch_est_size
);
memset
(
pdsch_dl_ch_estimates
,
0
,
sizeof
(
int32_t
)
*
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
*
pdsch_est_size
);
for
(
m
=
s0
;
m
<
(
s0
+
s1
);
m
++
)
{
for
(
m
=
s0
;
m
<
(
s0
+
s1
);
m
++
)
{
if
(
dlsch0
->
dlsch_config
.
dlDmrsSymbPos
&
(
1
<<
m
))
{
if
(
dlsch0
->
dlsch_config
.
dlDmrsSymbPos
&
(
1
<<
m
))
{
...
@@ -645,26 +645,25 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
...
@@ -645,26 +645,25 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
uint32_t
dl_valid_re
[
NR_SYMBOLS_PER_SLOT
]
=
{
0
};
uint32_t
dl_valid_re
[
NR_SYMBOLS_PER_SLOT
]
=
{
0
};
uint32_t
llr_offset
[
NR_SYMBOLS_PER_SLOT
]
=
{
0
};
uint32_t
llr_offset
[
NR_SYMBOLS_PER_SLOT
]
=
{
0
};
const
uint32_t
rx_size
=
NR_SYMBOLS_PER_SLOT
*
const
uint32_t
rx_size
=
((
NR_SYMBOLS_PER_SLOT
*
dlsch
[
0
].
dlsch_config
.
number_rbs
*
NR_NB_SC_PER_RB
+
15
)
>>
4
)
<<
4
;
dlsch
[
0
].
dlsch_config
.
number_rbs
*
NR_NB_SC_PER_RB
;
__attribute__
((
aligned
(
32
)))
int32_t
dl_ch_estimates_ext
[
ue
->
frame_parms
.
nb_antennas_rx
][
rx_size
];
memset
(
dl_ch_estimates_ext
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
rx_size
*
sizeof
(
int32_t
));
__attribute__
((
aligned
(
32
)))
int32_t
rxdataF_ext
[
ue
->
frame_parms
.
nb_antennas_rx
][
rx_size
];
__attribute__
((
aligned
(
32
)))
int32_t
dl_ch_estimates_ext
[
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
][
rx_size
];
memset
(
rxdataF_ext
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
rx_size
*
sizeof
(
int32_t
));
memset
(
dl_ch_estimates_ext
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
*
rx_size
*
sizeof
(
int32_t
));
__attribute__
((
aligned
(
32
)))
int32_t
rxdataF_
comp
[
ue
->
frame_parms
.
nb_antennas_rx
][
rx_size
];
__attribute__
((
aligned
(
32
)))
int32_t
rxdataF_
ext
[
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
][
rx_size
];
memset
(
rxdataF_
comp
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
rx_size
*
sizeof
(
int32_t
));
memset
(
rxdataF_
ext
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
*
rx_size
*
sizeof
(
int32_t
));
__attribute__
((
aligned
(
32
)))
int32_t
dl_ch_mag
[
ue
->
frame_parms
.
nb_antennas_rx
][
rx_size
];
__attribute__
((
aligned
(
32
)))
int32_t
rxdataF_comp
[
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
][
rx_size
];
memset
(
dl_ch_mag
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
rx_size
*
sizeof
(
int32_t
));
memset
(
rxdataF_comp
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
*
rx_size
*
sizeof
(
int32_t
));
__attribute__
((
aligned
(
32
)))
int32_t
dl_ch_mag
b
[
ue
->
frame_parms
.
nb_antennas_rx
][
rx_size
];
__attribute__
((
aligned
(
32
)))
int32_t
dl_ch_mag
[
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
][
rx_size
];
memset
(
dl_ch_mag
b
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
rx_size
*
sizeof
(
int32_t
));
memset
(
dl_ch_mag
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
*
rx_size
*
sizeof
(
int32_t
));
__attribute__
((
aligned
(
32
)))
int32_t
dl_ch_magr
[
ue
->
frame_parms
.
nb_antennas_rx
][
rx_size
];
__attribute__
((
aligned
(
32
)))
int32_t
dl_ch_magb
[
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
][
rx_size
];
memset
(
dl_ch_magr
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
rx_size
*
sizeof
(
int32_t
));
memset
(
dl_ch_magb
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
*
rx_size
*
sizeof
(
int32_t
));
__attribute__
((
aligned
(
32
)))
int32_t
dl_ch_magr
[
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
][
rx_size
];
memset
(
dl_ch_magr
,
0
,
ue
->
frame_parms
.
nb_antennas_rx
*
dlsch0
->
Nl
*
rx_size
*
sizeof
(
int32_t
));
int32_t
log2_maxh
=
0
;
int32_t
log2_maxh
=
0
;
start_meas
(
&
ue
->
rx_pdsch_stats
);
start_meas
(
&
ue
->
rx_pdsch_stats
);
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment