Changeset 6029:c25f9d9f78a6 in roaraudio
- Timestamp:
- 07/15/14 11:07:45 (10 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- libroar
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/caps.c
r5961 r6029 48 48 size_t needlen = 4; 49 49 50 if ( mes == NULL || caps == NULL ) 51 return -1; 50 if ( mes == NULL || caps == NULL ) { 51 roar_err_set(ROAR_ERROR_FAULT); 52 return -1; 53 } 52 54 53 55 needlen += caps->len; 54 56 55 57 if ( needlen > sizeof(mes->data) ) { 56 if ( data == NULL ) 58 if ( data == NULL ) { 59 roar_err_set(ROAR_ERROR_FAULT); 57 60 return -1; 61 } 58 62 59 63 if ( (*data = roar_mm_malloc(needlen)) == NULL ) … … 82 86 char * datap; 83 87 84 if ( mes == NULL || caps == NULL ) 85 return -1; 88 if ( mes == NULL || caps == NULL ) { 89 roar_err_set(ROAR_ERROR_FAULT); 90 return -1; 91 } 86 92 87 93 if ( data != NULL ) { … … 92 98 93 99 // versin check. 94 if ( datap[0] != 0 || mes->datalen < 4 ) 95 return -1; 100 if ( datap[0] != 0 ) { 101 roar_err_set(ROAR_ERROR_NSVERSION); 102 return -1; 103 } 104 105 if ( mes->datalen < 4 ) { 106 roar_err_set(ROAR_ERROR_PROTO); 107 return -1; 108 } 96 109 97 110 memset(caps, 0, sizeof(struct roar_caps)); … … 132 145 flags |= ROAR_CF_REQUEST; 133 146 134 if ( (flags & ROAR_CF_REQUEST) && out == NULL ) 135 return -1; 147 if ( (flags & ROAR_CF_REQUEST) && out == NULL ) { 148 roar_err_set(ROAR_ERROR_FAULT); 149 return -1; 150 } 136 151 137 152 if ( in != NULL ) … … 179 194 if ( mes.cmd != ROAR_CMD_OK ) { 180 195 if ( data != NULL ) 181 roar_mm_free (data);196 roar_mm_free_noerror(data); 182 197 return -1; 183 198 } … … 185 200 if ( roar_caps_from_msg(&caps, &mes, data) == -1 ) { 186 201 if ( data != NULL ) 187 roar_mm_free (data);202 roar_mm_free_noerror(data); 188 203 return -1; 189 204 } … … 193 208 if ( data != NULL ) 194 209 roar_mm_free(data); 210 roar_err_set(ROAR_ERROR_PROTO); 195 211 return -1; 196 212 } … … 200 216 if ( *out == NULL ) { 201 217 if ( data != NULL ) 202 roar_mm_free (data);218 roar_mm_free_noerror(data); 203 219 return -1; 204 220 } … … 237 253 238 254 if ( ret->stds == NULL ) { 239 roar_mm_free (ret);255 roar_mm_free_noerror(ret); 240 256 return NULL; 241 257 } -
libroar/random.c
r5961 r6029 198 198 return 0; 199 199 200 if ( buffer == NULL ) 200 if ( buffer == NULL ) { 201 roar_err_set(ROAR_ERROR_FAULT); 201 202 return -1; 203 } 202 204 203 205 roar_random_init(); … … 224 226 #endif 225 227 default: 228 roar_err_set(ROAR_ERROR_NOENT); 226 229 return -1; 227 230 break; … … 239 242 if ( locked ) { 240 243 if ( roar_mm_mlock(ret, len) == -1 ) { 241 roar_mm_free (ret);244 roar_mm_free_noerror(ret); 242 245 return NULL; 243 246 } … … 245 248 246 249 if ( roar_random_gen(ret, len, quality) == -1 ) { 247 roar_mm_free (ret);250 roar_mm_free_noerror(ret); 248 251 return NULL; 249 252 } -
libroar/serverinfo.c
r5961 r6029 174 174 char * mesdata; 175 175 176 if ( mes == NULL || info == NULL ) 176 if ( mes == NULL || info == NULL ) { 177 roar_err_set(ROAR_ERROR_FAULT); 177 178 return -1; 179 } 178 180 179 181 _add(ROAR_ITST_VERSION, version); … … 193 195 194 196 if ( needlen > LIBROAR_BUFFER_MSGDATA ) { 195 if ( data == NULL ) 197 if ( data == NULL ) { 198 roar_err_set(ROAR_ERROR_MSGSIZE); 196 199 return -1; 200 } 197 201 198 202 mesdata = roar_mm_malloc(needlen); … … 250 254 ROAR_DBG("roar_server_info(mes=%p{.datalen=%llu) = ?", mes, (long long unsigned int)mes->datalen); 251 255 252 if ( mes == NULL ) 253 return NULL; 256 if ( mes == NULL ) { 257 roar_err_set(ROAR_ERROR_FAULT); 258 return NULL; 259 } 254 260 255 261 if ( data == NULL ) { … … 264 270 265 271 // some basic texts like version: 266 if ( mes->datalen < needlen ) 267 return NULL; 268 269 ROAR_DBG("roar_server_info(mes=%p) = ?", mes); 270 271 if ( mesdata[0] != 0 ) /* version */ 272 return NULL; 273 274 ROAR_DBG("roar_server_info(mes=%p) = ?", mes); 275 276 if ( mesdata[1] != 0 ) /* reserved */ 277 return NULL; 272 if ( mes->datalen < needlen ) { 273 roar_err_set(ROAR_ERROR_PROTO); 274 return NULL; 275 } 276 277 ROAR_DBG("roar_server_info(mes=%p) = ?", mes); 278 279 if ( mesdata[0] != 0 ) { /* version */ 280 roar_err_set(ROAR_ERROR_NSVERSION); 281 return NULL; 282 } 283 284 ROAR_DBG("roar_server_info(mes=%p) = ?", mes); 285 286 if ( mesdata[1] != 0 ) { /* reserved */ 287 roar_err_set(ROAR_ERROR_PROTO); 288 return NULL; 289 } 278 290 279 291 ROAR_DBG("roar_server_info(mes=%p) = ?", mes); … … 286 298 287 299 // return error if our index buffer is too short. 288 if ( idx > (sizeof(iebuf)/sizeof(*iebuf)) ) 289 return NULL; 300 if ( idx > (sizeof(iebuf)/sizeof(*iebuf)) ) { 301 roar_err_set(ROAR_ERROR_MSGSIZE); 302 return NULL; 303 } 290 304 291 305 ROAR_DBG("roar_server_info(mes=%p) = ?", mes); … … 296 310 297 311 // recheck if we have a complet index. 298 if ( mes->datalen < needlen ) 299 return NULL; 312 if ( mes->datalen < needlen ) { 313 roar_err_set(ROAR_ERROR_PROTO); 314 return NULL; 315 } 300 316 301 317 ROAR_DBG("roar_server_info(mes=%p) = ?", mes); … … 321 337 322 338 // recheck if we have all the data... 323 if ( mes->datalen < needlen ) 324 return NULL; 339 if ( mes->datalen < needlen ) { 340 roar_err_set(ROAR_ERROR_PROTO); 341 return NULL; 342 } 325 343 326 344 ROAR_DBG("roar_server_info(mes=%p) = ?", mes); -
libroar/vio_misc.c
r5961 r6029 39 39 struct roar_vio_misc * self = vio->inst; 40 40 41 if ( self->read == NULL ) 41 if ( self->read == NULL ) { 42 roar_err_set(ROAR_ERROR_NOSYS); 42 43 return -1; 44 } 43 45 44 46 return self->read(buf, count, vio, self); … … 48 50 struct roar_vio_misc * self = vio->inst; 49 51 50 if ( self->write == NULL ) 52 if ( self->write == NULL ) { 53 roar_err_set(ROAR_ERROR_RO); 51 54 return -1; 55 } 52 56 53 57 return self->write(buf, count, vio, self); … … 74 78 switch (cmd) { 75 79 case ROAR_VIO_CTL_GET_NAME: 76 if ( data == NULL ) 80 if ( data == NULL ) { 81 roar_err_set(ROAR_ERROR_FAULT); 77 82 return -1; 83 } 78 84 79 85 *(const char**)data = self->name; … … 91 97 return 0; 92 98 99 roar_err_set(ROAR_ERROR_NOSYS); 93 100 return -1; 94 101 break; 95 102 } 96 103 104 roar_err_set(ROAR_ERROR_BADRQC); 97 105 return -1; 98 106 } … … 104 112 105 113 int roar_vio_open_misc (struct roar_vio_calls * calls, const struct roar_vio_misc * callbacks) { 106 if ( calls == NULL || callbacks == NULL ) 114 if ( calls == NULL || callbacks == NULL ) { 115 roar_err_set(ROAR_ERROR_FAULT); 107 116 return -1; 117 } 108 118 109 119 memset(calls, 0, sizeof(struct roar_vio_calls)); … … 173 183 size_t i; 174 184 175 if ( calls == NULL || name == NULL ) 185 if ( calls == NULL || name == NULL ) { 186 roar_err_set(ROAR_ERROR_FAULT); 176 187 return -1; 188 } 177 189 178 190 for (i = 0; i < (sizeof(libroar_vio_miscs)/sizeof(*libroar_vio_miscs)); i++) … … 180 192 return roar_vio_open_misc(calls, &(libroar_vio_miscs[i])); 181 193 194 roar_err_set(ROAR_ERROR_NOENT); 182 195 return -1; 183 196 } -
libroar/vio_winsock.c
r5961 r6029 48 48 49 49 ssize_t roar_vio_winsock_read (struct roar_vio_calls * vio, void *buf, size_t count) { 50 return recv(_get_fh(vio), buf, count, 0); 50 ssize_t ret; 51 52 roar_err_clear_all(); 53 ret = recv(_get_fh(vio), buf, count, 0); 54 roar_err_update(); 55 56 return ret; 51 57 } 52 58 53 59 ssize_t roar_vio_winsock_write (struct roar_vio_calls * vio, void *buf, size_t count) { 54 return send(_get_fh(vio), buf, count, 0); 60 ssize_t ret; 61 62 roar_err_clear_all(); 63 ret = send(_get_fh(vio), buf, count, 0); 64 roar_err_update(); 65 66 return ret; 55 67 } 56 68 … … 70 82 switch (cmd) { 71 83 case ROAR_VIO_CTL_GET_NAME: 72 if ( data == NULL ) 84 if ( data == NULL ) { 85 roar_err_set(ROAR_ERROR_FAULT); 73 86 return -1; 87 } 74 88 75 89 *(char**)data = "winsock"; … … 88 102 break; 89 103 case ROAR_VIO_CTL_ACCEPT: 104 roar_err_clear_all(); 90 105 tmp = accept(_get_fh(vio), NULL, 0); 106 roar_err_update(); 91 107 if ( tmp == -1 ) 92 108 return -1; … … 113 129 } 114 130 115 if ( tmp != 0 ) /* we currently only support R and W shutdowns */ 131 if ( tmp != 0 ) { /* we currently only support R and W shutdowns */ 132 roar_err_set(ROAR_ERROR_NOSYS); 116 133 return -1; 134 } 117 135 118 136 if ( s_r && s_w ) {
Note: See TracChangeset
for help on using the changeset viewer.