lkml.org 
[lkml]   [2022]   [Jan]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH net] net/smc: Avoid setting clcsock options after clcsock released
From


On 2022/1/12 3:11 pm, dust.li wrote:
> On Mon, Jan 10, 2022 at 05:38:25PM +0800, Wen Gu wrote:
>>
>> This patch tries to fix it by holding clcsock_release_lock and
>> checking whether clcsock has already been released. In case that
>> a crash of the same reason happens in smc_getsockopt(), this patch
>> also checkes smc->clcsock in smc_getsockopt().

>> @@ -2509,13 +2515,21 @@ static int smc_getsockopt(struct socket *sock, int level, int optname,
>> char __user *optval, int __user *optlen)
>> {
>> struct smc_sock *smc;
>> + int rc;
>>
>> smc = smc_sk(sock->sk);
>> + mutex_lock(&smc->clcsock_release_lock);
>> + if (!smc->clcsock) {
>> + mutex_unlock(&smc->clcsock_release_lock);
>> + return -EBADF;
>> + }
>> /* socket options apply to the CLC socket */
>> if (unlikely(!smc->clcsock->ops->getsockopt))
> Missed a mutex_unlock() here ?
>
>> return -EOPNOTSUPP;

Thanks for pointing it out. Will add an additional mutex_unlock().

Thanks,
Wen Gu

\
 
 \ /
  Last update: 2022-01-12 09:18    [W:0.277 / U:0.148 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site