X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=etc%2Fafpd%2Fdirectory.c;fp=etc%2Fafpd%2Fdirectory.c;h=ed40a26a7faf5e330ea8739386e33979e02de26f;hp=7539d3ba8dbd1f28154053450d92b4d9a3d70ad7;hb=f06e4a41ee9536f4249fc4ae7ea84f963727c6be;hpb=b992690778061d5fb9ec5d8393ce3f0b1ac20588 diff --git a/etc/afpd/directory.c b/etc/afpd/directory.c index 7539d3ba..ed40a26a 100644 --- a/etc/afpd/directory.c +++ b/etc/afpd/directory.c @@ -1881,9 +1881,12 @@ int setdirparams(struct vol *vol, struct path *path, uint16_t d_bitmap, char *bu case DIRPBIT_FINFO : if (isad) { /* Fixes #2802236 */ - uint16_t *fflags = (uint16_t *)(finder_buf + FINDERINFO_FRFLAGOFF); - *fflags &= htons(~FINDERINFO_ISHARED); + uint16_t fflags; + memcpy(&fflags, finder_buf + FINDERINFO_FRFLAGOFF, sizeof(uint16_t)); + fflags &= htons(~FINDERINFO_ISHARED); + memcpy(finder_buf + FINDERINFO_FRFLAGOFF, &fflags, sizeof(uint16_t)); /* #2802236 end */ + if ( dir->d_did == DIRDID_ROOT ) { /* * Alright, we admit it, this is *really* sick!