OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /v/openpkg/cvs                   Email:  [email protected]
  Module: openpkg-src                      Date:   25-Dec-2008 22:02:12
  Branch: HEAD                             Handle: 2008122521021200

  Modified files:
    openpkg-src/sasl        sasl.patch

  Log:
    fix PostgreSQL binary retrival

  Summary:
    Revision    Changes     Path
    1.27        +38 -16     openpkg-src/sasl/sasl.patch
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/sasl/sasl.patch
  ============================================================================
  $ cvs diff -u -r1.26 -r1.27 sasl.patch
  --- openpkg-src/sasl/sasl.patch       25 Dec 2008 17:59:38 -0000      1.26
  +++ openpkg-src/sasl/sasl.patch       25 Dec 2008 21:02:12 -0000      1.27
  @@ -223,7 +223,7 @@
    
   Index: plugins/sql.c
   --- plugins/sql.c.orig       2006-04-07 15:42:16 +0200
  -+++ plugins/sql.c    2008-12-25 18:56:32 +0100
  ++++ plugins/sql.c    2008-12-25 21:57:47 +0100
   @@ -150,9 +150,15 @@
        return -1;
        }
  @@ -243,6 +243,15 @@
        }
        
        /* free result */
  +@@ -277,7 +283,7 @@
  +     ExecStatusType status;
  +     
  +     /* run the query */
  +-    result = PQexec(conn, cmd);
  ++    result = PQexecParams(conn, cmd, 0, NULL, NULL, NULL, NULL, 1);
  +     
  +     /* check the status */
  +     status = PQresultStatus(result);
   @@ -298,6 +304,7 @@
        row_count = PQntuples(result);
        if (!row_count) {
  @@ -251,24 +260,37 @@
        utils->log(NULL, SASL_LOG_NOTE, "sql plugin: no result found");
        PQclear(result);
        return -1;
  -@@ -310,9 +317,13 @@
  +@@ -310,9 +317,26 @@
        /* now get the result set value and value_len */
        /* we only fetch one because we don't care about the rest */
        if (value) {
   -    strncpy(value, PQgetvalue(result,0,0), size-2);
   -    value[size-1] = '\0';
   -    if (value_len) *value_len = strlen(value);
  -+        size_t col_len;
  -+    col_len = (size_t)PQgetlength(result, 0, 0);
  -+        if (col_len > size - 1);
  -+            col_len = size - 1;
  -+    memcpy(value, PQgetvalue(result, 0, 0), col_len);
  -+    value[col_len] = '\0';
  -+    if (value_len) *value_len = col_len;
  ++        if (PQgetisnull(result, 0, 0)) {
  ++            size_t col_len;
  ++            col_len = strlen(SQL_NULL_VALUE);
  ++            if (col_len > size - 1)
  ++                col_len = size - 1;
  ++            memcpy(value, SQL_NULL_VALUE, col_len);
  ++            value[col_len] = '\0';
  ++            if (value_len)
  ++                *value_len = col_len;
  ++        }
  ++        else {
  ++            size_t col_len;
  ++            col_len = (size_t)PQgetlength(result, 0, 0);
  ++            if (col_len > size - 1);
  ++                col_len = size - 1;
  ++            memcpy(value, PQgetvalue(result, 0, 0), col_len);
  ++            value[col_len] = '\0';
  ++            if (value_len)
  ++                *value_len = col_len;
  ++        }
        }
        
        /* free result */
  -@@ -342,7 +353,7 @@
  +@@ -342,7 +366,7 @@
    #endif /* HAVE_PGSQL */
    
    #ifdef HAVE_SQLITE
  @@ -277,7 +299,7 @@
    
    static void *_sqlite_open(char *host __attribute__((unused)),
                          char *port __attribute__((unused)),
  -@@ -352,21 +363,23 @@
  +@@ -352,21 +376,23 @@
                          const char *database, const sasl_utils_t *utils)
    {
        int rc;
  @@ -308,7 +330,7 @@
        return NULL;
        }
    
  -@@ -388,62 +401,67 @@
  +@@ -388,62 +414,67 @@
        return 0;
    }
    
  @@ -417,7 +439,7 @@
        return 0;
    }
    
  -@@ -464,7 +482,7 @@
  +@@ -464,7 +495,7 @@
    
    static void _sqlite_close(void *db)
    {
  @@ -426,7 +448,7 @@
    }
    #endif /* HAVE_SQLITE */
    
  -@@ -771,7 +789,7 @@
  +@@ -771,7 +802,7 @@
        settings = (sql_settings_t *) glob_context;
        
        sparams->utils->log(NULL, SASL_LOG_DEBUG,
  @@ -435,7 +457,7 @@
        
        user_buf = sparams->utils->malloc(ulen + 1);
        if (!user_buf) goto done;
  -@@ -849,7 +867,7 @@
  +@@ -849,7 +880,7 @@
        }
        
        sparams->utils->log(NULL, SASL_LOG_DEBUG,
  @@ -444,7 +466,7 @@
                            realname, escap_userid, escap_realm);
        
        /* create a statement that we will use */
  -@@ -864,9 +882,15 @@
  +@@ -864,9 +895,15 @@
        /* run the query */
        if (!settings->sql_engine->sql_exec(conn, query, value, sizeof(value),
                                            &value_len, sparams->utils)) {
  @@ .
______________________________________________________________________
OpenPKG                                             http://openpkg.org
CVS Repository Commit List                     [email protected]

Reply via email to