gnegg programming with passion

13Jan/090

pointers, sizes

Just a small remember for myself:

If

?View Code DELPHI
TMyRecord = record
  pointer1: pointer;
  pointer2: pointer;
  pointer3: pointer;
  pointer4: pointer
end;
PMyRecord = ^TMyRecord;

then

?View Code DELPHI
  sizeof(TMyRecord) <> sizeof(PMyRecord)

So

?View Code DELPHI
  var rec: PMyRecord;
 
  rec = AllocMem(sizeof(rec));

is probably not a sensible thing to do (at least not if you intend to actually put something into that space the pointer points to).

At least it began breaking very, very soonish and consistently once TMyRecord got enough members - too bad though that I first looked at the completely wrong space.

Nothing beats the joy of seeing a very non-localized access violation go away after two hours of debugging though.

Tagged as: , No Comments
3Jul/080

Epic SSL fail

Today when I tried to use the fancy SSL VPN access a customer provided me with, I came across this epic fail:

Of *all* the things that can be wrong in a SSL certificate, this certificate manages to get them wrong. The self-signed(1) certificate was issued for the wrong host name(2) and it has expired(3) quite some time ago.

Granted: In this case the issue of trust is more or less constrained to the server to know who I am (I wasn't intending on transferring any amount of sensitive data), but still - when you self-sign your certificate, the cost of issuing one for the correct host or issuing one with a very long validity becomes a non-issue.

Anyways - I had a laugh. And now you can have one too.

Tagged as: , , No Comments