[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 メーリングリストの案内