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());

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
Users mailing list
[email protected]
http://lists.policyd.org/mailman/listinfo/users

Reply via email to