Top Latest Append

pterjan's diary


  Novell/Microsoft agreement (partially) available

Following LWM news about the availability of the 3 parts of Novell/Microsoft agreement, I started reading the one called PATENT COOPERATION AGREEMENT. We get a warning telling that we won't get the interesting parts:

Confidential Treatment has been requested for portions of this exhibit. The copy filed herewith omits the information subject to the confidentiality request. Omissions are designated as “***”.

However, I didn't except confidential parts to be so precisely delimited:

7.2 ***. If a *** (or ***e.g., an *** or ***) *** that this Agreement or the *** (including *** or with respect thereto) of *** under this Agreement are not *** to which a *** and there is an *** by a *** with respect to such *** that the *** and there is no *** (e.g. through amendment of this Agreement), then such *** may*** of the *** this Agreement by *** to the ***.

Anyway, I fail to see the goal of this agreement when I read that filling a lawsuit for patent infrigement may just lead to terminate the agreement:

7.3.1 If one Party (“Asserting Party”) files a lawsuit for Patent infringement against the other Party for Party Activities within the Term (or against a Distributor of the other Party for Distributor Activities within the Term or against a Customer of the other Party for use of a Covered Product or Excluded Product during the Term), such other Party shall have the right immediately to terminate this Agreement by providing written notice to the Asserting Party.


  Signal Spam plugin for Evolution

"Signal Spam" is a French association aiming at fighting spam. It gathers some governmental agencies, some companies (including Microsoft), ... Currently they collect spam to study it and when you register you can tell if you would accept to go to justice.

There are currently 3 ways to send them a spam :

  • Use the web form (I can't imagine someone receiving an usual amount of spam doing this)
  • Use the provided Outlook plugin
  • Use the provided Thunderbird extension

As I use evolution, I decided to write a plugin. The version 0.0.1 is really alpha but I have been using it for a few days and at least it does not crash :)

It lacks i18n, some error reporting, an icon for the menus and some features but it allows you to select one or several mails and send them which is the main intended functionality.

Suggestions and patches welcome !

While doing so I had to learn e-passwords, e-plugin, camel-stream-mem, and some other parts of Evolution API and could commit minor fixes to the documentation. After a lot of reading of the existing plugins source, I think that would be nice to have some simple sample plugin to start with.

Update: Here comes 0.0.2 as I found a leak in 0.0.1 :)


  Broken comments

It looks like comments on my blog are now broken but I can't find why. The ruby code is fh.flock( File::LOCK_EX ) and ruby process loops on the following 3 lines when you try to post a comment and then I need to kill the ruby process or all the blog gets broken:

--- SIGVTALRM (Virtual timer expired) @ 0 (0) ---
sigreturn()                             = ? (mask now [])
flock(4, LOCK_EX)                       = ? ERESTARTSYS (To be restarted)

For some reason, the lock works fine when I post a new entry to the blog while it tries to lock the same file...

The code did not change and the server software versions did not change much so I really don't have any clue :(


  Gaim : How to upset bug reporters

I just received the following mail:

Category: None
Group: 2.0.0 beta 4
>Status: Closed
Resolution: None
Priority: 5
Private: No
Submitted By: Pascal Terjan (pterjan)
Assigned to: Tim Ringenbach (marv_sf)
Summary: bug in yahoo_packet_read

Initial Comment: Look at this part of the code :
pos += 2; pair->key = strtol(key, NULL, 10); accept = x; /* if x is 0 there was no key, so don't accept it */
if (len - pos + 1 <= 0) { /* Truncated. Garbage or something. */ accept = FALSE; }
if (accept) { delimiter = (const guchar *)strstr((char *)&data[pos], "\xc0\x80"); if (delimiter == NULL)
As you do pos += 2, strstr will start searching after the delimiter we found. I don't know if you expect finding another one just after, but then you should check that pos + 1 is still < len as strstr will read 2 chars in data. If you do not expect another one, pos+=2 should be dropped and (len - pos + 1 <= 0) changed to (pos > len -1)
I found this using valgrind wich reported that strstr reads after the end of data.
Comment By: Luke Schierer (lschiere) Date: 2007-05-30 11:42
Message: Logged In: YES user_id=28833 Originator: NO
As we have now renamed the project, and are migrating to, I am closing this ticket. Please create a new ticket at if this issue persists with 2.0.0

I wanted to go the the page but I get an error telling me about private stuff, is this to to ensure that we don't answer? They did not take time to handle this quite simple bug in 7 months and now they close it and mark it private so that I can't reply. With this bug handling method, I don't think I will report them any bug soon and I won't report this to their new site to have it ignored again. At least it is posted here and maybe someone will read it some day and fix it, as the original bug is no longer available...