~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/auth_schema/auth_schema.h

  • Committer: Daniel
  • Date: 2011-10-08 19:47:11 UTC
  • mto: This revision was merged to the branch mainline in revision 2437.
  • Revision ID: daniel@ubuntu-10-20111008194711-dp47vra0qzjm2o8x
Escape user in SQL statement to avoid SQL injection.  Verify auth table name.  Include auth query in error message.  Tweak formatting to match coding standards.

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
 
35
35
  /**
36
36
   * @brief
37
 
   *   Set/change the authentication table.
 
37
   *   Set the authentication table.
38
38
   *
39
39
   * @param[in] table Schema-qualified table name.
40
40
   *
41
 
   * @returns false Always returns false currently because table isn't checked.
 
41
   * @retval false Success, new auth table set
 
42
   * @retval true  Failure, auth table not changed
42
43
   */
43
 
  bool setTable(const char *table);
 
44
  bool setTable(const string &table);
44
45
 
45
46
  /**
46
47
   * These are the query_log system variables.  So sysvar_enabled is
81
82
                           const string &scramble_bytes,
82
83
                           const string &client_password);
83
84
 
 
85
  /**
 
86
   * @brief
 
87
   *   Escape a string for use as a single-quoted string value.
 
88
   *
 
89
   * @details
 
90
   *   The string is escaped so that it can be used as a value in single quotes, like:
 
91
   *   col='untrusted value'.  Therefore, double quotes are not escaped because they're
 
92
   *   valid inside single-quoted values.  Escaping helps avoid SQL injections.
 
93
   *
 
94
   * @param[in] input Untrusted string
 
95
   *
 
96
   * @return Escaped string
 
97
   */
 
98
  string escapeString(const string &input);
 
99
 
84
100
  Session::shared_ptr _session; ///< Internal session for querying auth table
85
101
};
86
102