*/
struct idmap_script_xid2sid_state {
- const char *syscmd;
+ char **argl;
size_t idx;
uint8_t *out;
};
return tevent_req_post(req, ev);
}
- state->syscmd = talloc_asprintf(state, "%s IDTOSID %cID %lu", script, key,
- (unsigned long)xid.id);
- if (tevent_req_nomem(state->syscmd, req)) {
+ state->argl = talloc_zero_array(state,
+ char *,
+ 5);
+ if (tevent_req_nomem(state->argl, req)) {
return tevent_req_post(req, ev);
}
+ state->argl[0] = talloc_strdup(state->argl, script);
+ if (tevent_req_nomem(state->argl[0], req)) {
+ return tevent_req_post(req, ev);
+ }
+ state->argl[1] = talloc_strdup(state->argl, "IDTOSID");
+ if (tevent_req_nomem(state->argl[1], req)) {
+ return tevent_req_post(req, ev);
+ }
+ state->argl[2] = talloc_asprintf(state->argl, "%cID", key);
+ if (tevent_req_nomem(state->argl[2], req)) {
+ return tevent_req_post(req, ev);
+ }
+ state->argl[3] = talloc_asprintf(state->argl, "%lu",
+ (unsigned long)xid.id);
+ if (tevent_req_nomem(state->argl[3], req)) {
+ return tevent_req_post(req, ev);
+ }
+ state->argl[4] = NULL;
- subreq = file_pload_send(state, ev, state->syscmd, 1024);
+ subreq = file_ploadv_send(state, ev, state->argl, 1024);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
}
struct idmap_script_sid2xid_state {
- const char *syscmd;
+ char **argl;
size_t idx;
uint8_t *out;
};
dom_sid_string_buf(sid, sidbuf, sizeof(sidbuf));
- state->syscmd = talloc_asprintf(state, "%s SIDTOID %s",
- script, sidbuf);
- if (tevent_req_nomem(state->syscmd, req)) {
+ state->argl = talloc_zero_array(state,
+ char *,
+ 4);
+ if (tevent_req_nomem(state->argl, req)) {
+ return tevent_req_post(req, ev);
+ }
+ state->argl[0] = talloc_strdup(state->argl, script);
+ if (tevent_req_nomem(state->argl[0], req)) {
+ return tevent_req_post(req, ev);
+ }
+ state->argl[1] = talloc_strdup(state->argl, "SIDTOID");
+ if (tevent_req_nomem(state->argl[1], req)) {
+ return tevent_req_post(req, ev);
+ }
+ state->argl[2] = talloc_asprintf(state->argl, "%s", sidbuf);
+ if (tevent_req_nomem(state->argl[2], req)) {
return tevent_req_post(req, ev);
}
+ state->argl[3] = NULL;
- subreq = file_pload_send(state, ev, state->syscmd, 1024);
+ subreq = file_ploadv_send(state, ev, state->argl, 1024);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}