@@ -183,8 +183,10 @@ np_err_sr2nc_edit(sr_session_ctx_t *ev_sess, const sr_session_ctx_t *err_sess)
183
183
ptr = strchr (err -> message + 23 , '\"' );
184
184
185
185
/* create error message */
186
- asprintf (& str , "Required leafref target with value \"%.*s\" missing." , (int )(ptr - (err -> message + 23 )),
187
- err -> message + 23 );
186
+ if (asprintf (& str , "Required leafref target with value \"%.*s\" missing." , (int )(ptr - (err -> message + 23 )),
187
+ err -> message + 23 ) == -1 ) {
188
+ goto mem_error ;
189
+ }
188
190
189
191
/* instance-required */
190
192
assert (path );
@@ -195,8 +197,10 @@ np_err_sr2nc_edit(sr_session_ctx_t *ev_sess, const sr_session_ctx_t *err_sess)
195
197
ptr = strchr (err -> message + 29 , '\"' );
196
198
197
199
/* create error message */
198
- asprintf (& str , "Required instance-identifier \"%.*s\" missing." , (int )(ptr - (err -> message + 29 )),
199
- err -> message + 29 );
200
+ if (asprintf (& str , "Required instance-identifier \"%.*s\" missing." , (int )(ptr - (err -> message + 29 )),
201
+ err -> message + 29 ) == -1 ) {
202
+ goto mem_error ;
203
+ }
200
204
201
205
/* instance-required */
202
206
assert (path );
@@ -216,8 +220,10 @@ np_err_sr2nc_edit(sr_session_ctx_t *ev_sess, const sr_session_ctx_t *err_sess)
216
220
ptr = strchr (err -> message + 6 , '\"' );
217
221
218
222
/* create error message */
219
- asprintf (& str , "Missing insert anchor \"%.*s\" instance." , (int )(ptr - (err -> message + 6 )),
220
- err -> message + 6 );
223
+ if (asprintf (& str , "Missing insert anchor \"%.*s\" instance." , (int )(ptr - (err -> message + 6 )),
224
+ err -> message + 6 ) == -1 ) {
225
+ goto mem_error ;
226
+ }
221
227
222
228
/* missing-instance */
223
229
sr_session_set_netconf_error (ev_sess , "protocol" , "bad-attribute" , "missing-instance" , NULL , str , 0 );
@@ -266,6 +272,14 @@ np_err_sr2nc_edit(sr_session_ctx_t *ev_sess, const sr_session_ctx_t *err_sess)
266
272
sr_session_dup_error ((sr_session_ctx_t * )err_sess , ev_sess );
267
273
}
268
274
275
+ free (path );
276
+ free (str );
277
+ free (str2 );
278
+ return ;
279
+
280
+ mem_error :
281
+ sr_session_set_error_message (ev_sess , "Memory allocation failed." );
282
+
269
283
free (path );
270
284
free (str );
271
285
free (str2 );
0 commit comments