Peter Kiem wrote:
> Hi Nigel,
>
>
> $key,$sessionData->{'UnixTimestamp'},$sessionData->{'UnixTimestamp'},$whitelist
>
>
>> I'm at a loss here, I cannot see how that query can fail, especially
>> with a syntax-like error.
>>
>
> After playing with it a bit today I believe the problem is you should be
> using $sessionData->{'Timestamp'} instead of
> $sessionData->{'UnixTimestamp'} otherwise you are getting uninitialised
> values in the SQL and hence it bombs...
>
> BUT I still cannot get the format you are using to work. Instead I
> tried this and it seems to work
>
> $sth = DBDo("
> INSERT INTO greylisting_autowhitelist
> (TrackKey,Added,LastSeen,Comment)
> VALUES
>
> (".DBQuote($key).",".$sessionData->{'Timestamp'}.",".$sessionData->{'Timestamp'}.",".DBQuote($whitelist).")
> ");
>
>
>
>
You're right, bug found. This is against v2.0.7 , can you confirm it works?-N
Index: cbp/modules/Greylisting.pm
===================================================================
--- cbp/modules/Greylisting.pm (revision 465)
+++ cbp/modules/Greylisting.pm (working copy)
@@ -449,7 +449,7 @@
WHERE
ID = ?
',
- $key,$sessionData->{'UnixTimestamp'},$blacklist,$currentAutoBlacklistEntry
+ $key,$sessionData->{'Timestamp'},$blacklist,$currentAutoBlacklistEntry
);
if (!$sth) {
$server->log(LOG_ERR,"[GREYLISTING] Database update failed: ".cbp::dblayer::Error());
@@ -464,7 +464,7 @@
VALUES
(?,?,?)
',
- $key,$sessionData->{'UnixTimestamp'},$blacklist
+ $key,$sessionData->{'Timestamp'},$blacklist
);
if (!$sth) {
$server->log(LOG_ERR,"[GREYLISTING] Database insert failed: ".cbp::dblayer::Error());
@@ -685,7 +685,7 @@
WHERE
ID = ?
',
- $key,$sessionData->{'UnixTimestamp'},$sessionData->{'UnixTimestamp'},$whitelist,$currentAutoWhitelistEntry
+ $key,$sessionData->{'Timestamp'},$sessionData->{'Timestamp'},$whitelist,$currentAutoWhitelistEntry
);
if (!$sth) {
$server->log(LOG_ERR,"[GREYLISTING] Database update failed: ".cbp::dblayer::Error());
@@ -699,7 +699,7 @@
VALUES
(?,?,?,?)
',
- $key,$sessionData->{'UnixTimestamp'},$sessionData->{'UnixTimestamp'},$whitelist
+ $key,$sessionData->{'Timestamp'},$sessionData->{'Timestamp'},$whitelist
);
if (!$sth) {
$server->log(LOG_ERR,"[GREYLISTING] Database insert failed: ".cbp::dblayer::Error());
Index: cbp/modules/Greylisting.pm
===================================================================
--- cbp/modules/Greylisting.pm (revision 466)
+++ cbp/modules/Greylisting.pm (working copy)
@@ -443,13 +443,12 @@
UPDATE
greylisting_autoblacklist
SET
- TrackKey = ?,
- Added = ?,
- Comment = ?
+ TrackKey = '.DBQuote($key).',
+ Added = '.DBQuote($sessionData->{'Timestamp'}).',
+ Comment = '.DBQuote($blacklist).'
WHERE
- ID = ?
- ',
- $key,$sessionData->{'Timestamp'},$blacklist,$currentAutoBlacklistEntry
+ ID = '.DBQuote($currentAutoBlacklistEntry).'
+ '
);
if (!$sth) {
$server->log(LOG_ERR,"[GREYLISTING] Database update failed: ".cbp::dblayer::Error());
@@ -462,9 +461,8 @@
INSERT INTO greylisting_autoblacklist
(TrackKey,Added,Comment)
VALUES
- (?,?,?)
+ ('.DBQuote($key).','.DBQuote($sessionData->{'Timestamp'}).','.DBQuote($blacklist).')
',
- $key,$sessionData->{'Timestamp'},$blacklist
);
if (!$sth) {
$server->log(LOG_ERR,"[GREYLISTING] Database insert failed: ".cbp::dblayer::Error());
@@ -678,14 +676,13 @@
UPDATE
greylisting_autowhitelist
SET
- TrackKey = ?,
- Added = ?,
- LastSeen = ?,
- Comment = ?
+ TrackKey = '.DBQuote($key).',
+ Added = '.DBQuote($sessionData->{'Timestamp'}).',
+ LastSeen = '.DBQuote($sessionData->{'Timestamp'}).',
+ Comment = '.DBQuote($whitelist).'
WHERE
- ID = ?
- ',
- $key,$sessionData->{'Timestamp'},$sessionData->{'Timestamp'},$whitelist,$currentAutoWhitelistEntry
+ ID = '.DBQuote($currentAutoWhitelistEntry).'
+ '
);
if (!$sth) {
$server->log(LOG_ERR,"[GREYLISTING] Database update failed: ".cbp::dblayer::Error());
@@ -697,9 +694,13 @@
INSERT INTO greylisting_autowhitelist
(TrackKey,Added,LastSeen,Comment)
VALUES
- (?,?,?,?)
- ',
- $key,$sessionData->{'Timestamp'},$sessionData->{'Timestamp'},$whitelist
+ (
+ '.DBQuote($key).',
+ '.DBQuote($sessionData->{'Timestamp'}).',
+ '.DBQuote($sessionData->{'Timestamp'}).',
+ '.DBQuote($whitelist).'
+ )
+ '
);
if (!$sth) {
$server->log(LOG_ERR,"[GREYLISTING] Database insert failed: ".cbp::dblayer::Error());
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ Users mailing list [email protected] http://lists.policyd.org/mailman/listinfo/users
