Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 63d6ff9 in mainline


Ignore:
Timestamp:
2012-07-13T04:52:05Z (10 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial
Children:
f3fced0
Parents:
d93a5a6f
Message:

hound: Fix few leaks and memory corruption bugs.

Location:
uspace/srv/audio/hound
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/audio/hound/audio_source.c

    rd93a5a6f r63d6ff9  
    7171void audio_source_fini(audio_source_t *source)
    7272{
    73         if (!source)
    74                 return;
     73        assert(source);
    7574        assert(source->connected_sink == NULL);
    7675        free(source->name);
    77         free(source);
     76        source->name = NULL;
    7877}
    7978
  • uspace/srv/audio/hound/hound.c

    rd93a5a6f r63d6ff9  
    5555                    audio_ ## type ## _list_instance(it); \
    5656                if (str_cmp(name, dev->name) == 0) { \
    57                         log_debug("%s with name %s is already present", \
     57                        log_debug("%s with name '%s' is already present", \
    5858                            #type, name); \
    59                         return NULL; \
     59                        return dev; \
    6060                } \
    6161        } \
  • uspace/srv/audio/hound/main.c

    rd93a5a6f r63d6ff9  
    6868        size_t size = 0;
    6969        ipc_callid_t callid;
    70         async_data_read_receive(&callid, &size);
     70        async_data_write_receive(&callid, &size);
    7171        char *buffer = malloc(size);
    7272        if (buffer) {
    73                 async_data_read_finalize(callid, buffer, size);
     73                async_data_write_finalize(callid, buffer, size);
    7474                buffer[size - 1] = 0;
    7575                log_verbose("Got name from client: %s", buffer);
     
    8383        async_sess_t *s = async_callback_receive_start(EXCHANGE_ATOMIC, &call);
    8484        async_answer_0(callid, s ? EOK : ENOMEM);
    85         log_verbose("Received callback session");
     85        if (s) {
     86                log_verbose("Received callback session");
     87        } else
     88                log_debug("Failed to receive callback session");
    8689        return s;
    8790}
     
    148151                        const char *name = get_name();
    149152                        async_sess_t *sess = get_session();
    150                         audio_client_t * client =
     153                        audio_client_t *client =
    151154                            audio_client_get_playback(name, &format, sess);
     155                        free(name);
    152156                        if (!client) {
    153157                                log_error("Failed to create playback client");
    154158                                async_answer_0(callid, ENOMEM);
     159                                break;
    155160                        }
    156161                        int ret = hound_add_source(&hound, &client->source);
     
    162167                                break;
    163168                        }
     169                        log_info("Added audio client %p '%s'",
     170                            client, client->name);
    164171                        async_answer_0(callid, EOK);
    165172                        list_append(&client->link, &local_playback);
Note: See TracChangeset for help on using the changeset viewer.