Re: closing file in adjust_data_dir

From: Japin Li <japinli(at)hotmail(dot)com>
To: Ted Yu <yuzhihong(at)gmail(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: closing file in adjust_data_dir
Date: 2022-11-16 03:11:52
Message-ID: MEYP282MB1669689E3C19E1EB73AB440FB6079@MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On Wed, 16 Nov 2022 at 10:52, Ted Yu <yuzhihong(at)gmail(dot)com> wrote:
> On Tue, Nov 15, 2022 at 6:35 PM Japin Li <japinli(at)hotmail(dot)com> wrote:
>>
>> fd = popen(cmd, "r");
>> - if (fd == NULL || fgets(filename, sizeof(filename), fd) == NULL ||
>> pclose(fd) != 0)
>> + if (fd == NULL || fgets(filename, sizeof(filename), fd) == NULL)
>> {
>> + pclose(fd);
>> write_stderr(_("%s: could not determine the data directory
>> using command \"%s\"\n"), progname, cmd);
>> exit(1);
>> }
>>
>> Here, segfault maybe occurs if fd is NULL. I think we can remove pclose()
>> safely since the process will exit.
>>
>
> That means we're going back to v1 of the patch.
>

After some rethinking, I find the origin code do not have problems.

If fd is NULL or fgets() returns NULL, the process exits. Otherwise, we call
pclose() to close fd. The code isn't straightforward, however, it is correct.

--
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Ted Yu 2022-11-16 03:15:57 Re: closing file in adjust_data_dir
Previous Message Simon Riggs 2022-11-16 03:10:50 Re: SUBTRANS: Minimizing calls to SubTransSetParent()