diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-02-08 00:02:52 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-02-08 00:02:52 +0100 |
commit | 5d8ef852fce5c86756bfd05cbbc5b05351dd9ced (patch) | |
tree | 16cdd0e3495af2599efcb777c86349e24437dcbb /hurd/sysvshm.c | |
parent | ac294f2bed4e0f8b313b08c6356fceb599bff86b (diff) |
Address comments
Diffstat (limited to 'hurd/sysvshm.c')
-rw-r--r-- | hurd/sysvshm.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/hurd/sysvshm.c b/hurd/sysvshm.c index 945ac1c24e..5d538a6373 100644 --- a/hurd/sysvshm.c +++ b/hurd/sysvshm.c @@ -1,4 +1,5 @@ -/* Copyright (C) 2005-2015 Free Software Foundation, Inc. +/* SysV shared memory for Hurd. + Copyright (C) 2005-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -41,7 +42,7 @@ struct sysvshm_attach }; /* List of attachments. */ -static struct sysvshm_attach *attach_list; +static struct sysvshm_attach *sysvshm_list; /* A lock to protect the linked list of shared memory attachments. */ static struct mutex sysvshm_lock = MUTEX_INITIALIZER; @@ -54,30 +55,30 @@ __sysvshm_add (void *addr, size_t size) struct sysvshm_attach *shm; shm = malloc (sizeof (*shm)); - if (!shm) + if (shm == NULL) return errno; __mutex_lock (&sysvshm_lock); shm->addr = addr; shm->size = size; - shm->next = attach_list; - attach_list = shm; + shm->next = sysvshm_list; + sysvshm_list = shm; __mutex_unlock (&sysvshm_lock); return 0; } -/* Removes a segment attachment. Returns its size if found, or EINVAL - otherwise. */ +/* Removes a segment attachment. On success, returns 0 and sets *SIZE to its + size. Returns EINVAL if not found. */ error_t __sysvshm_remove (void *addr, size_t *size) { struct sysvshm_attach *shm; - struct sysvshm_attach **pshm = &attach_list; + struct sysvshm_attach **pshm = &sysvshm_list; __mutex_lock (&sysvshm_lock); - shm = attach_list; - while (shm) + shm = sysvshm_list; + while (shm != NULL) { shm = *pshm; if (shm->addr == addr) @@ -85,6 +86,7 @@ __sysvshm_remove (void *addr, size_t *size) *pshm = shm->next; *size = shm->size; __mutex_unlock (&sysvshm_lock); + free (shm); return 0; } pshm = &shm->next; |