@cryptotaxi247 / netdata-1 / commits / 8640e0495

fix crashes 7 (#20224)

more checks in njfv2idx_find_and_acquire_j2_header()

Costa Tsaousis committed May 2, 2025 at 16:57 UTC 8640e0495ae7f0e24ef4c4ba09fc741a8bef6b21
1 file changed +9 -4
src/database/engine/journalfile.c
+9 -4
@@ -66,6 +66,8 @@ void journalfile_v1_generate_path(struct rrdengine_datafile *datafile, char *str
66 // ----------------------------------------------------------------------------
67
68 ALWAYS_INLINE struct rrdengine_datafile *njfv2idx_find_and_acquire_j2_header(NJFV2IDX_FIND_STATE *s) {
69 + if (unlikely(!s)) return NULL;
70 +
71 struct rrdengine_datafile *datafile = NULL;
72
73 rw_spinlock_read_lock(&s->ctx->njfv2idx.spinlock);
@@ -106,14 +108,16 @@ ALWAYS_INLINE struct rrdengine_datafile *njfv2idx_find_and_acquire_j2_header(NJF
108
109 datafile = *PValue;
110
109 - if (!datafile || !datafile->journalfile) {
111 + struct rrdengine_journalfile *journalfile = datafile->journalfile;
112 +
113 + if (!datafile || !journalfile) {
114 datafile = NULL;
115 PValue = NULL;
116 continue;
117 }
118
115 - TIME_RANGE_COMPARE rc = is_page_in_time_range(datafile->journalfile->v2.first_time_s,
116 - datafile->journalfile->v2.last_time_s,
119 + TIME_RANGE_COMPARE rc = is_page_in_time_range(journalfile->v2.first_time_s,
120 + journalfile->v2.last_time_s,
121 s->wanted_start_time_s,
122 s->wanted_end_time_s);
123
@@ -135,7 +139,8 @@ ALWAYS_INLINE struct rrdengine_datafile *njfv2idx_find_and_acquire_j2_header(NJF
139 }
140 }
141
138 - if(datafile)
142 + struct rrdengine_journalfile *journalfile = datafile->journalfile;
143 + if(datafile && journalfile)
144 s->j2_header_acquired = journalfile_v2_data_acquire(datafile->journalfile, NULL,
145 s->wanted_start_time_s,
146 s->wanted_end_time_s);