UIImageからのピクセルデータの読み込み(つづき)

先のコードで何枚も画像を読んでるとCGDataProviderCopyDataのところで落ちる。CFRelease(ibuf);をコメントアウトすると動くけど、メモリリークの状況はInstrumentsで明確にモニターできる。で、

  // CFRelease(ibuf);
  NSData* ibuf2 = (NSData*)ibuf;
  [ibuf2 release];

しても同じ症状で落ちる。はて、と思って[ibuf2 release]を[ibuf2 autorelease]にしてみたらメモリも解放されるっぽくて、かつ落ちないみたい。
なにそれー。
いや、これでダメなら

  static CFDataRef ibuf = 0;
  if (ibuf) CFRelease(ibuf);
  ibuf = CGDataProviderCopyData(.....

とかやろうとしてて、そこまで変態的な事しなくて済んで良かったのかも。いや、でもこれはバッドノウハウなんでないの?