libpq: Small code clarification, and avoid casting away const
authorPeter Eisentraut <peter_e@gmx.net>
Tue, 6 Mar 2012 21:20:43 +0000 (23:20 +0200)
committerPeter Eisentraut <peter_e@gmx.net>
Tue, 6 Mar 2012 21:21:43 +0000 (23:21 +0200)
src/interfaces/libpq/fe-auth.c

index b7a3a814f0403524b69a4480b6d5bee6f88d79cf..7c7383cd9d5d74d288b9a21d9204d0d4c15d9c67 100644 (file)
@@ -739,7 +739,8 @@ static int
 pg_password_sendauth(PGconn *conn, const char *password, AuthRequest areq)
 {
    int         ret;
-   char       *crypt_pwd;
+   char       *crypt_pwd = NULL;
+   const char *pwd_to_send;
 
    /* Encrypt the password if needed. */
 
@@ -771,21 +772,22 @@ pg_password_sendauth(PGconn *conn, const char *password, AuthRequest areq)
                    free(crypt_pwd);
                    return STATUS_ERROR;
                }
+
+               pwd_to_send = crypt_pwd;
                break;
            }
        case AUTH_REQ_PASSWORD:
-           /* discard const so we can assign it */
-           crypt_pwd = (char *) password;
+           pwd_to_send = password;
            break;
        default:
            return STATUS_ERROR;
    }
    /* Packet has a message type as of protocol 3.0 */
    if (PG_PROTOCOL_MAJOR(conn->pversion) >= 3)
-       ret = pqPacketSend(conn, 'p', crypt_pwd, strlen(crypt_pwd) + 1);
+       ret = pqPacketSend(conn, 'p', pwd_to_send, strlen(pwd_to_send) + 1);
    else
-       ret = pqPacketSend(conn, 0, crypt_pwd, strlen(crypt_pwd) + 1);
-   if (areq == AUTH_REQ_MD5)
+       ret = pqPacketSend(conn, 0, pwd_to_send, strlen(pwd_to_send) + 1);
+   if (crypt_pwd)
        free(crypt_pwd);
    return ret;
 }