Re: Memory leaks in BufFileOpenShared()
От | Antonin Houska |
---|---|
Тема | Re: Memory leaks in BufFileOpenShared() |
Дата | |
Msg-id | 16139.1529049566@localhost обсуждение исходный текст |
Ответ на | Re: Memory leaks in BufFileOpenShared() (Tatsuo Ishii <ishii@sraoss.co.jp>) |
Ответы |
Re: Memory leaks in BufFileOpenShared()
|
Список | pgsql-hackers |
Now I see that BufFileCreateShared() has similar problem with file->name. More generic problem I see is that the common initialization of BufFile is repeated a few times. The attached patch tries to improve that (it also fixes the duplicate allocation of file->name). Tatsuo Ishii <ishii@sraoss.co.jp> wrote: > > Memory is allocated twice for "file" and "files" variables. Possible fix: > > > > diff --git a/src/backend/storage/file/buffile.c b/src/backend/storage/file/buffile.c > > index d8a18dd3dc..00f61748b3 100644 > > --- a/src/backend/storage/file/buffile.c > > +++ b/src/backend/storage/file/buffile.c > > @@ -277,10 +277,10 @@ BufFileCreateShared(SharedFileSet *fileset, const char *name) > > BufFile * > > BufFileOpenShared(SharedFileSet *fileset, const char *name) > > { > > - BufFile *file = (BufFile *) palloc(sizeof(BufFile)); > > + BufFile *file; > > char segment_name[MAXPGPATH]; > > Size capacity = 16; > > - File *files = palloc(sizeof(File) * capacity); > > + File *files; > > int nfiles = 0; > > > > file = (BufFile *) palloc(sizeof(BufFile)); > > Good catch. Thanks. > > Best regards, > -- > Tatsuo Ishii > SRA OSS, Inc. Japan > English: http://www.sraoss.co.jp/index_en.php > Japanese:http://www.sraoss.co.jp > -- Antonin Houska Cybertec Schönig & Schönig GmbH Gröhrmühlgasse 26, A-2700 Wiener Neustadt Web: https://www.cybertec-postgresql.com
Вложения
В списке pgsql-hackers по дате отправления: