Skip to content

Commit 1324ae0

Browse files
committed
err netconf UPDATE check asprintf return value
Refs #1245
1 parent e34fda9 commit 1324ae0

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

src/err_netconf.c

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,10 @@ np_err_sr2nc_edit(sr_session_ctx_t *ev_sess, const sr_session_ctx_t *err_sess)
183183
ptr = strchr(err->message + 23, '\"');
184184

185185
/* 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+
}
188190

189191
/* instance-required */
190192
assert(path);
@@ -195,8 +197,10 @@ np_err_sr2nc_edit(sr_session_ctx_t *ev_sess, const sr_session_ctx_t *err_sess)
195197
ptr = strchr(err->message + 29, '\"');
196198

197199
/* 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+
}
200204

201205
/* instance-required */
202206
assert(path);
@@ -216,8 +220,10 @@ np_err_sr2nc_edit(sr_session_ctx_t *ev_sess, const sr_session_ctx_t *err_sess)
216220
ptr = strchr(err->message + 6, '\"');
217221

218222
/* 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+
}
221227

222228
/* missing-instance */
223229
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)
266272
sr_session_dup_error((sr_session_ctx_t *)err_sess, ev_sess);
267273
}
268274

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+
269283
free(path);
270284
free(str);
271285
free(str2);

0 commit comments

Comments
 (0)