[netatalk-ja:0130] Re: 3.0.2でPhotoshop CS5で濁音のファイルがセーブできない

Hiroyuki Sato hiroysato @ gmail.com
2013年 3月 31日 (日) 12:05:27 JST


佐藤です。

HATさん

ありがとうございます。

やっぱりof_allocにはNFDでpathが指定されていますね。
netatalkの他のところで、NFD -> NFCをしているところの関数がわかれば直せそうですけど...

どこでやっているかまだよくわかってません。


ファイル名

  ほげ.txt

保存されているファイル

    # ls | od -tx1
    0000000 e3 81 bb e3 81 92 2e 74 78 74 0a
    0000013

of_allocに渡されたpathの値

    Breakpoint 1, of_alloc (vol=0xc75670, dir=0xc73fe0, path=
        0x6532c0 "\343\201\273\343\201\221\343\202\231.txt", ofrefnum=
        0x7fffc661fb84, eid=1, ad=0x0, st=0x653230) at ofork.c:130
    130    if (!oforks) {
    (gdb) continue
    Continuing.


    # perl -le 'print "\343\201\273\343\201\221\343\202\231.txt"' | od -tx1
    0000000 e3 81 bb e3 81 91 e3 82 99 2e 74 78 74 0a
    0000016




2013/3/30 HAT <hat @ fa2.so-net.ne.jp>

> > 問題の箇所は、etc/afpd/ofork.cのこの部分ですかね
> >
> > 192         if ((ad->ad_name = strdup(path)) == NULL) {
> > 193             LOG(log_error, logtype_afpd, "of_alloc: malloc: %s",
> > strerror(er    rno) );
> > 194             free(ad);
> > 195             free(of);
> > 196             oforks[ of_refnum ] = NULL;
> > 197             return NULL;
>
> あと、etc/afpd/fork.hに
> #define of_name(a) (a)->of_ad->ad_name
> というマクロがあるので、of_name()も調べる必要があります。
>
> etc/afpd/ofork.cの中のof_rename()のところに、
>
>                 if ((of_name(of) = strdup(newpath)) == NULL)
>                     return AFPERR_MISC;
>
> というのがあります。
>
> --
> HAT
>



-- 
Hiroyuki Sato


netatalk-ja メーリングリストの案内