Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?

Coder Accuses IBM of Patenting His Work 249

ttsiod writes "Back in 2001, I coded HeapCheck, a GPL library for Windows (inspired by ElectricFence) that detected invalid read/write accesses on any heap allocations at runtime — thus greatly helping my debugging sessions. I published it on my site, and got a few users who were kind enough to thank me — a Serbian programmer even sent me $250 as a thank you (I still have his mails). After a few years, Microsoft included very similar technology in the operating system itself, calling it PageHeap. I had more or less forgotten this stuff, since for the last 7 years I've been coding for UNIX/Linux, where valgrind superseded Efence/dmalloc/etc. Imagine my surprise when yesterday, Googling for references to my site, I found out that the technology I implemented, of runtime detection of invalid heap accesses, has been patented in the States, and to add insult to injury, even mentions my site (via a non-working link to an old version of my page) in the patent references! After the necessary 'WTFs' and 'bloody hells' I thought this merits (a) a Slashdotting, and (b) a set of honest questions: what should I do about this? I am not an American citizen, but the 'inventors' of this technology (see their names in the top of the patent) have apparently succeeded in passing this ludicrous patent in the States. If my code doesn't count as prior art, Bruce Perens's Efence (which I clearly state my code was inspired from) is at least 12 years prior! Suggestions/cursing patent trolls most welcome."
This discussion has been archived. No new comments can be posted.

Coder Accuses IBM of Patenting His Work

Comments Filter:
  • Re:ludicrous (Score:5, Informative)

    by networkconsultant ( 1224452 ) on Thursday November 25, 2010 @09:22AM (#34342026)
    Unless you sue IBM and have very deep pockets once someone has stolen your idea and had the theft accredited by the rating agency (patent office) you are essentially screwed. You may file an appeal, but then the burden of proof is on you.
    Tesla and Marconi had similar ideas around the same time but the patent office ruled in favor of Marconi, you my friend may be a Tesla at this point.
  • by Sockatume ( 732728 ) on Thursday November 25, 2010 @09:24AM (#34342046)

    "The shortcomings of the prior art are overcome and additional advantages are provided through the provision of a method of facilitating management of dynamically allocated memory. The method includes, for instance, having a dynamically allocated memory buffer; and determining in real-time that an invalid access of the dynamically allocated memory buffer has occurred."

    I'm no expert on HeapCheck but that doesn't sound far removed from its basic functionality.

  • by arivanov ( 12034 ) on Thursday November 25, 2010 @09:34AM (#34342114) Homepage

    As with all patents read Claim No 1. It should contain the novel element, you cannot leave it for later. The "novelty" in this one is that you do not need to recompile the program the way original efence worked.

    However, times have changed since the days of the original Efence and things are linked dynamically at runtime on all OSes which in turn means that any LD_PRELOAD-ed Efence like debugging library which relies on OS R/W page management to control access is prior art. It satisfies literally the requirements of claim 1.

    I do not recall off the top of my head what valgrind uses, but I would not be surprised if it fits the bill. The original Efence does not - it has to be linked in.

  • by js3 ( 319268 ) on Thursday November 25, 2010 @09:38AM (#34342136)

    It seems their patent covers doing it on a per process bases plus the ability to turn it on or off in real time. Either way MS does have a similar thing in windows 7

  • Much prior art. (Score:5, Informative)

    by Ancient_Hacker ( 751168 ) on Thursday November 25, 2010 @09:42AM (#34342166)

    Back in 1990, I redid the Borland Pascal memory allocator so each block was given its own hardware-protected segment descriptor and length. Worked magnificently, as any reference outside a valid block would immediately fault. Only prob, you could only allocate about 4000 blocks as there were only 4,096 entries in the hardware segment table. So the next refinement was to allocate each block with short pre and postambles set to $12345678 and check thee for overwriting periodically. Worked almost as well, if not so immediately finding the errors.

    And no, I did not try to patent this, as I knew the Burroughs machines, since 1961, allocated a fresh memory-protected segment for each array, and using pre and post safety zones sure sounded like an "obvious" thing to do..

  • Re:ludicrous (Score:4, Informative)

    by Anonymous Coward on Thursday November 25, 2010 @09:43AM (#34342180)

    Pretty sure the patent office is accepting applications for examiners right now, lol. They like people with Master's degrees.

  • by Bruce Perens ( 3872 ) <> on Thursday November 25, 2010 @09:44AM (#34342188) Homepage Journal

    I am busy this week and have not been able to look at the patent. However, if IBM referenced this person's work in the prior art section of the patent, they are admitting that his work IS prior art, and is not subject of the patent. The issue then becomes, do any of the PATENT CLAIMS (not the summary) claim art that is exercised in his program.

    Electric Fence is listed as prior art in two ATT patents. When they saw it, they refrained from including two claims they otherwise would have, because I had precedence. The ATT patents should have expired by now.

    I doubt there's anything to worry about in this specific case. However, software patents in general present a severe problem. [Oops - previously submitted this as AC. Sorry]

  • by KamuZ ( 127113 ) on Thursday November 25, 2010 @09:55AM (#34342232) Homepage

    Actually in another post by Sockatume pointed the USPTO examiner is the one mentioning his website and not IBM.

    (for some reason I cannot link the article)

  • by dataminator ( 1447053 ) on Thursday November 25, 2010 @10:00AM (#34342274)

    Now, assuming that it does not satisfy you as an explanation, you could indicate that you are going to pursue legal action (the I in IBM stands for International) but you are willing to settle and sign away your rights for some relatively nominal fee.

    Ok, you said you are not a lawyer, but you could at least try to know what you're talking about before writing such a post.

    IANAL either, but even I know that being granted a patent doesn't magically make you own all prior art in the domain. The patent examiner even noticed HeapCheck as related work! The author has no claims whatsoever against IBM, and the idea to push for a settlement is ridiculous. What can there possibly be to settle?

    Since the examiner approved the patent, while knowing about HeapCheck, they must have thought that the patent claims (only the claims count, the description is worthless in that regard) are not fully covered by prior art. I doubt they could be wrong on this, so the prior art defense is pretty much out. They must also have thought that there is significant non-obvious innovation in relation to the prior art. That part is more subjective and thus may be debatable.

    In any case, the only possible outcome would be that IBM loses the patent, which changes exactly nothing for anybody unless IBM starts to sue people based on that patent. In any case the author has absolutely nothing to gain, and no basis whatsoever to negotiate with IBM.

    There are no rights to sign away, the author can do nothing to help IBM maintain the patent if it is invalid, and has no benefit from invalidating it. And if the patent is valid, as it probably is, he's just going to lose a lot of money and look like a fool (as opposed to losing a lot of money but without looking like a fool if he wins).

    No, I did not look at the patent, and am not going to. It would change nothing about the above.

  • by ttsiod ( 881575 ) on Thursday November 25, 2010 @10:05AM (#34342296) Homepage
    I only take an issue with your last paragraph - I certainly didn't leave the code in a graveyard, I released it with an open source license, so that anyone could use it and make his life a bit better. The fact that 10 years later, someone else has now patented the ideas in Electric Fence and HeapCheck, and can now sue me and everyone else using it, is what got me mad (hence the "trolls" comment).
  • by MROD ( 101561 ) on Thursday November 25, 2010 @10:12AM (#34342334) Homepage

    Remember that US patents are given to the first to file for a patent and not the first to invent, as can be demonstrated by the US patent for the incandescent lightbulb: or the telephone:

    Of course, the first one shows that the US patent office can issue a patent for something already patented elsewhere in the world.

  • by Darfeld ( 1147131 ) on Thursday November 25, 2010 @10:15AM (#34342346)

    Patents (like registered trademarks, and unlike copyright) are assumed enforcable unless proven otherwise.

    Wouldn't prior art prove otherwise?

    Assuming someone is sued and find the prior art, the patent would be nullified. But the patent exist until then, and is still dissuasive for someone to use the technology.

  • by ttsiod ( 881575 ) on Thursday November 25, 2010 @10:15AM (#34342350) Homepage
    I am a coder, not a lawyer - and from reading the patent's claims, I can see only one thing that was not in HeapCheck, but which DID exist in Electric Fence: the ability to enable heap checks at runtime, without recompilation. Electric Fence allowed one to do that via LD_PRELOAD, so I am sorry, but I stand by what I said - I can see nothing in there that didn't exist in either Efence or my HeapCheck.
  • FSF (Score:2, Informative)

    by snookiex ( 1814614 ) on Thursday November 25, 2010 @10:23AM (#34342398) Homepage
    You could contact the FSF []. They have a legal department that can help you with this.
  • by Compulawyer ( 318018 ) on Thursday November 25, 2010 @10:57AM (#34342570)
    If a reference is listed in the prior art section of a patent, that means that a patent examiner felt that the reference was pertinent, but that the *claimed invention* was sufficiently *different* from the prior art reference so as to be patentable. God was the only one who ever created something from nothing. Everyone else has had to build off what was already here - including previous versions of software. The phrase *claimed invention* is key here. To properly evaluate a patent, you must focus on the claims at the end. If a patent issued over prior art, the general rule is that there is some feature recited in the claims that is not disclosed in the prior art. You can argue whether the examiner was wrong, but it is virtually never the case that someone saw someone else's invention and then decided to get a patent on the exact same thing.
  • by wmelnick ( 411371 ) on Thursday November 25, 2010 @11:15AM (#34342690)
    Not at all. It is standard in the patent world to make the thing that you actually want to patent be the middle claim. The reasons are many and varied, but you can jump right to the thing that any company actually wants to get the patent upon by checking the center claim. There are 20 claims here, so it is likely this one: 10. The method of claim 1, further comprising: detecting that another allocation mode is to be used to allocate one or more buffers for the process; and dynamically deactivating the allocation mode that enables the determining in real-time, wherein the dynamically deactivating includes turning off an indicator in the process to deactivate the allocation mode, and wherein another dynamically allocated memory buffer for the process is allocated based on the another allocation mode, said another dynamically allocated memory buffer being allocated without additional memory as a guard.
  • by gnasher719 ( 869701 ) on Thursday November 25, 2010 @11:25AM (#34342760)

    The first option is to simply contact IBM and ask them how their patent is novel or different or disjoint from your work. This could result in one of two things: no response or a response. If you are satisfied with the response, you might change your mind about your situation and congratulate them on putting some novel innovations on HeapCheck, patenting it and listing you in the claim references (do you own any patents related to it?). Now, assuming that it does not satisfy you as an explanation, you could indicate that you are going to pursue legal action (the I in IBM stands for International) but you are willing to settle and sign away your rights for some relatively nominal fee. You could choose to reveal you're not interested in a lengthy expensive court battle with them or you could make it sound like you are angry and this is all you have to do with 100% of your time. Either mentality will send them a message, that's up to you.

    There is a problem here. The only situation where his code would affect IBM's patent is if he has published prior art that would genuinely make their patent invalid. But in this case he has no rights that he could sign away. Patents are not like copyright. If you illegally copied my code, I could say "give me $100,000 and I give you the rights to this code", and maybe you accept and we are both happy. If you use my patent without a license, I could say "give me $100,000 and I'll give you a license". If he has prior art that makes their patent valid, then it is out of his hands. _Anybody_ can invalidate the patent. He could say to IBM "give me $100,000 and I'll forget about my prior art". But even if IBM pays, I could then say to IBM "give me $100,000 and I'll forget about this guy's prior art". What makes it prior art is that it has been published. If this guy can prove that it has been published, then so can I, and everybody else. He doesn't get any rights from having created the prior art. The right to invalidate the patent is something that _everybody_ has.

    Of course he can spend a lot of money to invalidate IBM's patent, but even if he wins, at an enormous cost, all he gets is that IBM's patent is invalid. There is no money to be had from this. The only way to make money is to carefully collect evidence for the prior art (collect evidence that the invention was available to the public), and if he hears that IBM sues anybody for patent infringement, then he can go to the defendant and say "give me $100,000 and I give you clear documentation that proves beyond any doubt that their patent should be invalid".

  • by Anonymous Coward on Thursday November 25, 2010 @11:28AM (#34342768)

    The Examiner cited your work. He also used it as the basis of a rejection for three office actions. It was only after IBM included "without requiring recompiling, linking or loading of the application" that the Examiner allowed the patent. It looks like the Examiner gave full consideration to your work.

  • by O('_')O_Bush ( 1162487 ) on Thursday November 25, 2010 @11:32AM (#34342804)
    You clearly have no idea how any large engineering company works.

    First, no employee can just go out and file a patent, they sign that right away when they join a company like IBM.

    Secondly, it's the legal department of IBM that would file a patent, the employee would just submit a proposal. The legal department meticulously goes through the proposal claims just as a patent office would to avoid scenarios like what the OP is implying.

    Thirdly, the employee only makes a bonus once the patent is granted, not on the submission of a proposal, such that there is NO incentive for submitting stolen or invalid patent proposals.

    What is happening here is that the OP doesn't understand what IBM patented. IBM patented an improvement of the OPs invention and specifically claims that they are NOT patenting the OPs invention.
  • Your post is entirely backwards. The US is actually a first-to-invent country, and one of the very few. The majority of the rest of the world uses a first-to-file system, but because the Constitution references "inventors", Congress decided that it would be unconstitutional to grant patents to someone who merely filled out paperwork. This is why, in the US, the applicant is the inventor while in Europe, for example, the applicant is usually a corporation.

    You reference Edison for proof that the US is a first-to-file system... But did you read your link?

    Edison fared no better back home in the U.S., where the U.S. Patent Office already ruled, on October 8, 1883, that Edison's patents were invalid, because he based them upon the earlier art of a gentleman named William Sawyer.

    I think, based on your links to the lightbulb and the telephone, that you don't actually understand how patents work... Patents cover the claims, no more, no less. As a result, there are frequently new inventions that are improvements on earlier work that are valid because the claims claim the improvement. For example, there have been literally thousands of patents relating to lightbulb technology, but they don't all say, "I claim, 1. A lightbulb." Instead, each claims specific improvements, such as this one from 1998:

    1. A light bulb, comprising: a housing configured to fit at least one of a halogen, incandescent and fluorescent light fixture; an illumination source including a plurality of light emitting diodes (LEDs); a processor coupled to the illumination source and controlling current to the plurality of LEDs to generate color within a color spectrum, wherein the illumination source and the processor are disposed within the housing; and, at least one of a receiver and a transmitter coupled to the processor for respectively receiving or transmitting a data signal from an external device.

    If you just look at the titles of patent applications, you wouldn't realize this, however. That claim is from a patent titled "smart light bulb", so not understanding that the titles are legally irrelevant would lead to complaints that the patent office was allowing someone to patent things that had already been invented before.

  • by The Empiricist ( 854346 ) on Thursday November 25, 2010 @12:03PM (#34343068)

    The first option is to simply contact IBM and ask them how their patent is novel or different or disjoint from your work.

    A similar option is to look at the patent prosecution history in Public PAIR []. Get through the CAPTCHA, click on the Image File Wrapper tab, and look at the rejections, amendments, responses, etc.

    It looks like the Tsiodras reference was used by the Examiner to reject the patent application. What happened is that the applicants amended their claims so that they would not cover what was taught by HeapCheck 1.2. For example, the applicants state that in the HeapCheck 1.2 documentation "it clearly states that all source files that want to make use of the alternative heap memory allocation mode must be compiled to include specific header files and then linked to a specific library that will satisfy those requests (see, e.g., Section 4 'Usage')." After this argument was first made, it wasn't enough for the Examiner, who ended up rejecting the application two more times before satisfactory claim language was submitted.

    The point is that IBM has already said why it thinks that they have something that is novel and nonobvious, so it is a good idea to look at what they've said before demanding that they say it all over again. More importantly, HeapCheck (version 1.2 at least) does not infringe on the patent claims. According to the documentation on the HeapCheck v1.2 web page, you have to compile support for it into the software you are creating. But the IBM patent requires that "setting the allocation mode for the process . . . is performed in real-time, and wherein the seting sets the allocation mode . . . without requiring recompiling, linking or loading of the applicaiton to set, in real-time, the allocation mode for the application."

    Tsiodras could have trouble if future versions of HeapCheck included features that fall within the scope of the claimed invention, but even version 1.34 [] appears to require re-compilation to enable and disable the heap checking features.

  • Re:ludicrous (Score:3, Informative)

    by jbengt ( 874751 ) on Thursday November 25, 2010 @12:30PM (#34343288)

    What's that you say? The PTO is not a private company, but rather a branch of our omnipotent benevolent government, . . . Well, in that case they can't possibly be concerned with revenue...

    I believe that the USPTO is set up to pay for itself. budget []
    They certainly are concerned with revenue.
    The USPTO’s earned revenue is derived from the fees collected for patent and trademark products and services. Fee collections are recognized as earned revenue when the activities to complete the work associated with the fee are completed. []

  • by Fareq ( 688769 ) on Thursday November 25, 2010 @12:32PM (#34343314)

    With regard to the patents, he has nothing to negotiate. However, if he wrote the code, and released it under the GPL, he could definitely claim that their software which uses the technology is a violation of the terms of the GPL license. This claim might be legitimate (if they copied) or completely not legitimate (if they didn't re-use any of the code, and merely developed new software with similar capabilities and features).

    In reality, OP is going nowhere with this. The USPTO is unlikely to invalidate the patent because somebody presents them with prior art that they already considered. Even if the USPTO was wrong, they aren't going to reconsider. Even if this was new prior art that nobody had previously known about... the USPTO is extremely unlikely to reconsider the patent grant. If it has been granted already, then, as they say, "prosecution on the merits is closed." Oh, sure, if IBM sues somebody, the prior art might be helpful. Claim 1 might or might not hold up unmodified in court, depending. Were it to require modification, then IBM could potentially lose a suit. IBM is unlikely to pursue the matter at this stage anyway, and they probably don't even realize that they have this particular patent.

    I'm not going to read the entire document to make sure that I understand precisely all of IBM's definitions of terms, so I can't give an informed opinion on the validity. Without doing enough reading to be informed ('cause hey, this is the internet after all, I'm supposed to be wrong or at least uninformed), the whole thing probably turns on the feature of not having to re-link or even re-load the application to set the heap checking feature on and off.

    Remember, you're only infringing a claim if you are infringing the entire claim. This patent isn't on "heap checking" or even "run-time detection of invalid heap access", or anything of the sort. If you aren't infringing the entirety of claim 1, the entirety of claim 12, or the entirety of claim 16 (the 3 independent claims), then you aren't infringing this patent. Similarly, if the HeapCheck software didn't do everything listed in those claims, then the differences between HeapCheck and those claims is the part that is (supposedly) novel and non-obvious.

    (standard disclaimers apply; I'm no lawyer, this isn't legal advice, I'm just an engineer that happens to work the IP/patent process for my department)

  • by The Empiricist ( 854346 ) on Thursday November 25, 2010 @12:36PM (#34343346)

    I can see only one thing that was not in HeapCheck, but which DID exist in Electric Fence: the ability to enable heap checks at runtime, without recompilation. Electric Fence allowed one to do that via LD_PRELOAD

    But this patent requires the ability to set allocaiton mode in real-time without requiring recompiling, linking, or loading. Using LD_PRELOAD to link to the Electric Fence library would still be an instance of requiring (dynamic) linking and loading. Someone else suggested that enabling/disabling application configuration settings at runtime might be an obvious modification to HeapCheck. That may be the case, but there is a difference between something that is not new (i.e., it has already been done before) and something that is obvious (i.e., it has not been done before, but it really isn't new enough).

    If someone actually gets sued or is threatened by this patent, then the courts will get a chance to consider whether the Patent Office erroneously allowed the patent. Alternatively, if you want to get together with some of your buddies, you could file a request for reexamination (the filing fee is only $2,250.00, less than $23 each for 100 angry /.ers). Perhaps the Patent Office will take another look at the claims and reject them based on some insight that you provide.

  • Re:ludicrous (Score:3, Informative)

    by FatdogHaiku ( 978357 ) on Thursday November 25, 2010 @01:13PM (#34343648)
    Well, U.S. Supreme Court upheld Tesla's patent in the end, but it was after Tesla had passed away... and it was to nullify a lawsuit against the US for Marconi. []
  • Re:ludicrous (Score:5, Informative)

    by Dachannien ( 617929 ) on Thursday November 25, 2010 @01:52PM (#34343854)

    Before spouting off about how the USPTO sucks so much ass solely on the basis of what the OP says, first try a little independent research. You can look up the entire prosecution history of the application in question on the USPTO's website at Public PAIR.

    First off, the guy's website was cited by the examiner rather than by IBM. The examiner used the OP's website to reject the claims three times before IBM's attorney finally came around and amended the claims to include this:

    wherein setting the allocation mode for the process to enable determining in real-time an invalid access is performed in real-time, and wherein the setting sets the allocation mode for an application executed by the process without requiring recompiling, linking or loading of the application to set, in real-time, the allocation mode for the application

    This was cited by the examiner in the reasons for allowance. Does the OP's code do this?

    Once again, this is an example of people who know very little about the patent system reading the abstract or looking at the figures, and not understanding that the really important part of the application is the claims. Nothing to see here, move along.

  • by Svartalf ( 2997 ) on Thursday November 25, 2010 @02:24PM (#34344076) Homepage

    Just because they already considered it, doesn't mean they won't invalidate it.

    The truth of the matter is that just because an examiner "considered" it, doesn't make the examiner right. I've had patent submissions that didn't get done because I ran out of funds (it's expensive to file one of these things...) where the "examiner" did their initial rejection on one of my early claims, and went looking for things that "anticipated" the usage in question- none of which were relevant. If they had people that were qualified and competent to do the examinations in the space they're doing them in, it'd be one thing, but it's not there and they're not even really trying these days.

  • MOD PARENT DOWN! (Score:5, Informative)

    by raftpeople ( 844215 ) on Thursday November 25, 2010 @03:41PM (#34344622)
    Nothing in your explanation describes why such simple coding (for someone with experience) should be patentable. The USPTO does "suck ass" because they allow patents that are pretty straightforward for any skilled practitioner.
  • Re:MOD PARENT DOWN! (Score:1, Informative)

    by Anonymous Coward on Thursday November 25, 2010 @11:31PM (#34347212)
    Sorry but Linked Lists [] in 2006 are pretty bloody obvious.

"I prefer the blunted cudgels of the followers of the Serpent God." -- Sean Doran the Younger