mirror of
https://github.com/samba-team/samba.git
synced 2025-01-12 09:18:10 +03:00
commit b520befe6f51644d20434add9864d7a2fa30aa2e
Author: SATOH Fumiyasu <fumiyas@osstech.co.jp> Date: Wed Dec 17 00:42:25 2008 +0900 libsmbclient: Fix SIGBUS on non-x86 CPUs We must align the struct smbc_dirent in the struct SMBC_internal_data because the struct smbc_dirent has numeric values that require alignment. Signed-off-by: Derrell Lipman <derrell.lipman@unwireduniverse.com>
This commit is contained in:
parent
e48a5cd5d4
commit
4c3aea3f62
@ -113,18 +113,19 @@ struct SMBC_internal_data {
|
||||
/* True when this handle is initialized */
|
||||
bool initialized;
|
||||
|
||||
/* dirent pointer location
|
||||
*
|
||||
/* dirent pointer location */
|
||||
struct smbc_dirent dirent;
|
||||
/*
|
||||
* Leave room for any urlencoded filename and the comment field.
|
||||
*
|
||||
* We really should use sizeof(struct smbc_dirent) plus (NAME_MAX * 3)
|
||||
* plus whatever the max length of a comment is, plus a couple of null
|
||||
* terminators (one after the filename, one after the comment).
|
||||
* We use (NAME_MAX * 3) plus whatever the max length of a comment is,
|
||||
* plus a couple of null terminators (one after the filename,
|
||||
* one after the comment).
|
||||
*
|
||||
* According to <linux/limits.h>, NAME_MAX is 255. Is it longer
|
||||
* anyplace else?
|
||||
*/
|
||||
char dirent[1024];
|
||||
char _dirent_name[1024];
|
||||
|
||||
/*
|
||||
* server connection list
|
||||
|
@ -976,9 +976,8 @@ SMBC_readdir_ctx(SMBCCTX *context,
|
||||
|
||||
}
|
||||
|
||||
dirp = (struct smbc_dirent *)context->internal->dirent;
|
||||
maxlen = (sizeof(context->internal->dirent) -
|
||||
sizeof(struct smbc_dirent));
|
||||
dirp = &context->internal->dirent;
|
||||
maxlen = sizeof(context->internal->_dirent_name);
|
||||
|
||||
smbc_readdir_internal(context, dirp, dirent, maxlen);
|
||||
|
||||
@ -1049,9 +1048,8 @@ SMBC_getdents_ctx(SMBCCTX *context,
|
||||
}
|
||||
|
||||
/* Do urlencoding of next entry, if so selected */
|
||||
dirent = (struct smbc_dirent *)context->internal->dirent;
|
||||
maxlen = (sizeof(context->internal->dirent) -
|
||||
sizeof(struct smbc_dirent));
|
||||
dirent = &context->internal->dirent;
|
||||
maxlen = sizeof(context->internal->_dirent_name);
|
||||
smbc_readdir_internal(context, dirent,
|
||||
dirlist->dirent, maxlen);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user