Re: Patch : PGPASSFILE fix

From: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
To: Prasad <prasad(dot)s(at)mail(dot)com>
Cc: Dave Page <dpage(at)pgadmin(dot)org>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: Patch : PGPASSFILE fix
Date: 2015-03-10 07:09:43
Message-ID: CAG7mmowCtJN3R4MTLx2cmj982KZ5A4hLTb9bYwyo7N9_3k0sRw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Prasad,

On Thu, Mar 5, 2015 at 4:20 AM, Prasad <prasad(dot)s(at)mail(dot)com> wrote:

> Hi,
>
> As mentioned in my earlier communication code calling this function is
> checking for file existence. So if we decide to add code for creation of
> full path, then similar code has to be removed from location of call to
> this function. Otherwise, it will end up with multiple error messages. It's
> wxWidget's wxFile that throws error.
>
> So, I've created two patches, and we can go with one of them.
> 1. Let GetConfigFile function just read value from PGPASSFILE and return
> as it is as like, similar to way it creates default path(It doesn't create
> file in case of default path as well). And calling functions are taking
> care of path validation and error messages.
>
This won't work.
We should create the file, if it does not exists (and, the path).

> 2. Let GetConfigFile function read value from PGPASSFILE and create file
> path ,it will show error message in case it can't. In this case calling
> code only should check existence of file before going ahead, and not try to
> create or read file, otherwise , user will end up with multiple message
> boxes with same error.
>
The patch, you shared, do not create the path (parent directories) for the
PGPASSFILE (if it does not exists).
You're only creating the file, which is not right.

NOTE:
Please do not mix tabs and spaces in your patch.
I am still not able to apply the patch using 'git apply' utility.

--

Thanks & Regards,

Ashesh Vashi
EnterpriseDB INDIA: Enterprise PostgreSQL Company
<http://www.enterprisedb.com>

*http://www.linkedin.com/in/asheshvashi*
<http://www.linkedin.com/in/asheshvashi>

>
> regards,
> Prasad
>
>
>
>
>
> Sent: Wednesday, March 04, 2015 at 11:35 AM
> From: "Ashesh Vashi" <ashesh(dot)vashi(at)enterprisedb(dot)com>, func
> To: "Dave Page" <dpage(at)pgadmin(dot)org>
> Cc: Prasad <prasad(dot)s(at)mail(dot)com>, pgadmin-hackers <
> pgadmin-hackers(at)postgresql(dot)org>
> Subject: Re: [pgadmin-hackers] Patch : PGPASSFILE fix
>
> On Wed, Mar 4, 2015 at 4:40 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>
>
>
> On Wed, Mar 4, 2015 at 11:06 AM, Ashesh Vashi <
> ashesh(dot)vashi(at)enterprisedb(dot)com[ashesh(dot)vashi@enterprisedb.com]> wrote:
> On Wed, Mar 4, 2015 at 4:09 PM, Dave Page <dpage(at)pgadmin(dot)org[
> dpage(at)pgadmin(dot)org]> wrote:
>
> I think we should try to create the full path if necessary, and simply
> throw an error if we can't.
> And, I think - we should switch back to default pgpass configuration file.
>
> No, because that's a security risk (writing the password to a file that
> wasn't what the user intended).
> Agree.
>
> --
> Thanks & Regards,
>
> Ashesh Vashi
> EnterpriseDB INDIA: Enterprise PostgreSQL Company[
> http://www.enterprisedb.com]
>
>
> http://www.linkedin.com/in/asheshvashi[http://www.linkedin.com/in/asheshvashi]
>
>
>
>
> --
> Thanks & Regards,
>
> Ashesh Vashi
> EnterpriseDB INDIA: Enterprise PostgreSQL Company[
> http://www.enterprisedb.com]
>
>
> http://www.linkedin.com/in/asheshvashi[http://www.linkedin.com/in/asheshvashi]
>
> On Wed, Mar 4, 2015 at 10:01 AM, Prasad <prasad(dot)s(at)mail(dot)com[
> prasad(dot)s(at)mail(dot)com]> wrote:
> > Alright , I'll revert to PGPASS check.
> > Existing function only creates folder containing file. With this case,
> whats expected ? Reading value in PGPASSFILE and try to create folder
> containing pgpass file (Assuming it's valid path)? Remember, it's
> environment variable. User can specify anything in there. Some garbage
> value as well. If we don't do any validation there, user will automatically
> see error with complain about file ?
> >
> > thanks and regards,
> > Prasad
> >
> >
> > Sent: Wednesday, March 04, 2015 at 7:48 AM
> > From: "Ashesh Vashi" <ashesh(dot)vashi(at)enterprisedb(dot)com[
> ashesh(dot)vashi(at)enterprisedb(dot)com]>
> > To: Prasad <prasad(dot)s(at)mail(dot)com[prasad(dot)s@mail.com]>
> > Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org[
> pgadmin-hackers(at)postgresql(dot)org]>
> > Subject: Re: [pgadmin-hackers] Patch : PGPASSFILE fix
> >
> > On Wed, Mar 4, 2015 at 8:44 AM, Prasad <prasad(dot)s(at)mail(dot)com[
> prasad(dot)s(at)mail(dot)com]> wrote:
> >
> > Ashesh,
> >
> > Thanks for reviewing patch,
> > Code I have removed in I think, was switch statement inside if
> condition, which doesn't make sense.
> > ie.
> > if (var == 2)
> > {
> > switch (var)
> > case 2:
> > .....
> > break;
> > }
> >
> > that's why I removed it, because it's redundant.
> > Agree about redundancy, but you've also removed the code for checking
> the PGPASS check at the start of the function.
> > i.e.
> > @@ -762,35 +762,33 @@ void sysSettings::SetCanonicalLanguage(const
> wxLanguage &lang)
> >
> //////////////////////////////////////////////////////////////////////////
> > wxString sysSettings::GetConfigFile(configFileName cfgname)
> > {
> > - if (cfgname == PGPASS)
> > - {
> >
> > I am not agree with that.
> > About creation of directory, I'm not sure if this validation is
> required. Existing code creates directory postgresql (only on windows)
> according to
> http://www.postgresql.org/docs/9.3/static/libpq-pgpass.html[http://www.postgresql.org/docs/9.3/static/libpq-pgpass.html][http://www.postgresql.org/docs/9.3/static/libpq-pgpass.html%5Bhttp://www.postgresql.org/docs/9.3/static/libpq-pgpass.html%5D]
> , and it doesn't create file. I'm not sure whether this kind of validation
> is expected in this function.
> > I think - it is.
> > Because - it could be used to save the updated password in the PGPASS
> file.
> >
> > -- Ashesh
> > regards,
> > Prasad
> >
> > Sent: Wednesday, March 04, 2015 at 7:15 AM
> > From: "Ashesh Vashi" <ashesh(dot)vashi(at)enterprisedb(dot)com[
> ashesh(dot)vashi(at)enterprisedb(dot)com][ashesh(dot)vashi@enterprisedb.com[
> ashesh(dot)vashi(at)enterprisedb(dot)com]]>
> > To: Prasad <prasad(dot)s(at)mail(dot)com[prasad(dot)s@mail(dot)com][prasad(dot)s(at)mail(dot)com[
> prasad(dot)s(at)mail(dot)com]]>
> > Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org[
> pgadmin-hackers(at)postgresql(dot)org][pgadmin-hackers@postgresql.org[
> pgadmin-hackers(at)postgresql(dot)org]]>
> > Subject: Re: [pgadmin-hackers] Patch : PGPASSFILE fix
> >
> > Hi Prasad,
> > I see couple of issues with your patch.* Please generate the patch
> using 'git diff'.
> > I could not apply your patch straight forwardly.
> > I had to use the patch utility.
> > * Please follow the coding style of pgAdmin.
> > You can find it at
> https://wiki.postgresql.org/wiki/PgAdmin_Internals#Coding_Style.*[https://wiki.postgresql.org/wiki/PgAdmin_Internals#Coding_Style.*][https://wiki.postgresql.org/wiki/PgAdmin_Internals#Coding_Style.*[https://wiki.postgresql.org/wiki/PgAdmin_Internals%23Coding_Style.*]]
> Do not remove any of the existing code.
> > It has been kept there keeping in mind about future development
> extending support of the existing functionality.
> > You've removed couple of lines in the sysSettings::GetConfigFile(...)
> function, which is not good.
> >
> > In your code:* Checked only for PGPASSFILE environment variable.
> > * Need to check the existence of the file.
> > * Take required actions (if that file/parent directory does not exists).
> > i.e. Create parent directory
> >
> >
> >
> > --
> > Thanks & Regards,
> >
> > Ashesh Vashi
> > EnterpriseDB INDIA: Enterprise PostgreSQL Company[
> http://www.enterprisedb.com[http://www.enterprisedb.com][
> http://www.enterprisedb.com[http://www.enterprisedb.com]]]
> >
> >
> http://www.linkedin.com/in/asheshvashi[http://www.linkedin.com/in/asheshvashi][http://www.linkedin.com/in/asheshvashi[http://www.linkedin.com/in/asheshvashi]][http://www.linkedin.com/in/asheshvashi%5Bhttp://www.linkedin.com/in/asheshvashi%5D%5Bhttp://www.linkedin.com/in/asheshvashi%5Bhttp://www.linkedin.com/in/asheshvashi%5D%5D]
> >
> > On Sun, Mar 1, 2015 at 11:08 PM, Prasad <prasad(dot)s(at)mail(dot)com[
> prasad(dot)s(at)mail(dot)com][prasad(dot)s@mail(dot)com[prasad(dot)s(at)mail(dot)com]][prasad(dot)s@mail.com
> [prasad(dot)s(at)mail(dot)com][prasad(dot)s@mail(dot)com[prasad(dot)s(at)mail(dot)com]]]> wrote:
> > Hi,
> >
> > Find attached fix for reading PGPASSFILE environment variable for pg
> password file.
> >
> > regards,
> > Prasad
> >
> > --
> > Sent via pgadmin-hackers mailing list (pgadmin-hackers(at)postgresql(dot)org[
> pgadmin-hackers(at)postgresql(dot)org][pgadmin-hackers@postgresql.org[
> pgadmin-hackers(at)postgresql(dot)org]][pgadmin-hackers@postgresql.org[
> pgadmin-hackers(at)postgresql(dot)org][pgadmin-hackers@postgresql.org[
> pgadmin-hackers(at)postgresql(dot)org]]])
> > To make changes to your subscription:
> >
> http://www.postgresql.org/mailpref/pgadmin-hackers[http://www.postgresql.org/mailpref/pgadmin-hackers][http://www.postgresql.org/mailpref/pgadmin-hackers[http://www.postgresql.org/mailpref/pgadmin-hackers]][http://www.postgresql.org/mailpref/pgadmin-hackers%5Bhttp://www.postgresql.org/mailpref/pgadmin-hackers%5D%5Bhttp://www.postgresql.org/mailpref/pgadmin-hackers%5Bhttp://www.postgresql.org/mailpref/pgadmin-hackers%5D%5D]
> >
> >
> >
> > --> Sent via pgadmin-hackers mailing list (
> pgadmin-hackers(at)postgresql(dot)org[pgadmin-hackers@postgresql.org])
> > To make changes to your subscription:
> >
> http://www.postgresql.org/mailpref/pgadmin-hackers[http://www.postgresql.org/mailpref/pgadmin-hackers]
>
>
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com[http://pgsnake.blogspot.com]
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com[http://www.enterprisedb.com]
> The Enterprise PostgreSQL Company
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com[http://pgsnake.blogspot.com]
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com[http://www.enterprisedb.com]
> The Enterprise PostgreSQL Company

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Ashesh Vashi 2015-03-10 07:23:41 Re: PATCH: saving of sort-columns and order chosen by user
Previous Message Ashesh Vashi 2015-03-10 05:52:04 Re: assert "!IsAttached()" failed in SetInvokingWindow()