Changeset 959d2ec in mainline for uspace/lib/c/generic/dnsr.c
- Timestamp:
- 2013-05-08T10:29:45Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d242cb6
- Parents:
- 9f029aa
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/dnsr.c
r9f029aa r959d2ec 71 71 { 72 72 async_exch_t *exch = dnsr_exchange_begin(); 73 char cname_buf[DNSR_NAME_MAX_SIZE + 1]; 74 ipc_call_t cnreply; 75 size_t act_size; 73 76 dnsr_hostinfo_t *info; 74 77 … … 76 79 aid_t req = async_send_0(exch, DNSR_NAME2HOST, &answer); 77 80 sysarg_t retval = async_data_write_start(exch, name, str_size(name)); 81 aid_t cnreq = async_data_read(exch, cname_buf, DNSR_NAME_MAX_SIZE, 82 &cnreply); 78 83 79 84 dnsr_exchange_end(exch); … … 81 86 if (retval != EOK) { 82 87 async_forget(req); 88 async_forget(cnreq); 83 89 return retval; 84 90 } 85 91 86 92 async_wait_for(req, &retval); 93 if (retval != EOK) { 94 async_forget(cnreq); 95 return EIO; 96 } 97 98 async_wait_for(cnreq, &retval); 87 99 if (retval != EOK) 88 100 return EIO; … … 92 104 return ENOMEM; 93 105 94 info->name = str_dup(name); 106 act_size = IPC_GET_ARG2(cnreply); 107 assert(act_size <= DNSR_NAME_MAX_SIZE); 108 cname_buf[act_size] = '\0'; 109 110 info->cname = str_dup(cname_buf); 95 111 info->addr.ipv4 = IPC_GET_ARG1(answer); 96 112 … … 104 120 return; 105 121 106 free(info-> name);122 free(info->cname); 107 123 free(info); 108 124 }
Note:
See TracChangeset
for help on using the changeset viewer.