[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[coldsync-hackers] [PEG-T415] Success



I've successfully synced my Clie T415 with a modified coldsync 2.2.5.

Changes (in summary):
dlp_cmd.c:
--Added function ReadDBListMultiple.  Argument-wise it's identical to 
ReadDBList, but it handles the multiple-database-per-packet protocol used by 
DLP 1.2+.  I strongly suspect that it can be tweaked into being backwards 
compatible with earlier DLPs (for example, the name of the database appears 
to be null-terminated in both situations; I use this as a record delimiter, 
and if there's only one record, there's only one record.)  If it can be 
backwards compatible, I'll post my changes as a suggested patch for 
ReadDBList.
--Used strncpy rather than memcpy to prevent buffer overflow and ensure null 
termination of database name.

spalm.c:
--Changed the database iterator from a for loop to a while loop.  Rather than 
looping from zero to num_dbs_, it now loops until one of a series of break 
conditions are met (currently only two: if a not-found error is returned by 
the Palm, or if the database info struct array fills up).

So, yeah, it works now.  I'll be doing more stress-testing, but it seems 
reasonably tolerant.

Side note: I've come across one program that stores a creator and type of 
'\0' on its databases, causing each to be viewed by coldsync as a null 
string.  This does not break Palm Desktop (I'm amazed; it's so far out of 
spec), but it -does- nuke Coldsync.  I've contacted the authors about their 
mind-numbingly stupid database management practice, but until then, be 
warned.  (The program is BibleReader by Olive Tree Software; I'll have to 
suffer through my Religious Studies classes without it. :-)

I'm going through and pulling out the dozens of debug printf's I inserted 
throughout the code and ensuring backwards compatibility before I try to 
submit a patch.  If anyone (Josef? Adam?) is interested in the code -now-, 
I'll be happy to e-mail it.

Thanks!
-Cliff L. Biffle

-- 
This message was sent through the coldsync-hackers mailing list.  To remove
yourself from this mailing list, send a message to majordomo@thedotin.net
with the words "unsubscribe coldsync-hackers" in the message body.  For more
information on Coldsync, send mail to coldsync-hackers-owner@thedotin.net.