1 Index: samba-3.0.37/source/auth/auth_util.c
2 ===================================================================
3 --- samba-3.0.37.orig/source/auth/auth_util.c 2009-09-30 14:21:56.000000000 +0200
4 +++ samba-3.0.37/source/auth/auth_util.c 2011-08-09 00:02:34.854444169 +0200
5 @@ -2284,18 +2284,20 @@
6 /* The only other possible result is that winbind is not up
7 and running. We need to update the trustdom_cache
11 update_trustdom_cache();
15 /* now the trustdom cache should be available a DC could still
16 * have a transitive trust so fall back to the cache of trusted
17 * domains (like a domain member would use */
20 if ( trustdom_cache_fetch(dom_name, &trustdom_sid) ) {
28 Index: samba-3.0.37/source/include/local.h
29 ===================================================================
30 --- samba-3.0.37.orig/source/include/local.h 2009-09-30 14:21:56.000000000 +0200
31 +++ samba-3.0.37/source/include/local.h 2011-08-09 00:02:34.854444169 +0200
33 #define MAX_DIRECTORY_HANDLES 2048
35 /* maximum number of file caches per smbd */
36 -#define MAX_WRITE_CACHES 10
37 +/* #define MAX_WRITE_CACHES 10 */
38 +#define MAX_WRITE_CACHES 2 /* AVM */
40 /* define what facility to use for syslog */
41 #ifndef SYSLOG_FACILITY
42 Index: samba-3.0.37/source/lib/iconv.c
43 ===================================================================
44 --- samba-3.0.37.orig/source/lib/iconv.c 2009-09-30 14:21:56.000000000 +0200
45 +++ samba-3.0.37/source/lib/iconv.c 2011-08-09 00:02:34.854444169 +0200
48 while (*inbytesleft >= 2 && *outbytesleft >= 1) {
49 (*outbuf)[0] = (*inbuf)[0];
50 - if ((*inbuf)[1]) ir_count++;
53 + (*outbuf)[0] = '_'; // AVM
58 Index: samba-3.0.37/source/lib/pidfile.c
59 ===================================================================
60 --- samba-3.0.37.orig/source/lib/pidfile.c 2009-09-30 14:21:56.000000000 +0200
61 +++ samba-3.0.37/source/lib/pidfile.c 2011-08-09 00:02:34.854444169 +0200
67 /* Add a suffix to the program name if this is a process with a
68 * none default configuration file name. */
69 if (strcmp( CONFIGFILE, dyn_CONFIGFILE) == 0) {
71 slprintf( name, sizeof( name)-1, "%s-%s", program_name,
75 + strncpy( name, program_name, sizeof( name)-1);
78 slprintf(pidFile, sizeof(pidFile)-1, "%s/%s.pid", lp_piddir(), name);
80 Index: samba-3.0.37/source/lib/system.c
81 ===================================================================
82 --- samba-3.0.37.orig/source/lib/system.c 2009-09-30 14:21:56.000000000 +0200
83 +++ samba-3.0.37/source/lib/system.c 2011-08-09 00:02:34.864444169 +0200
84 @@ -1499,7 +1499,11 @@
85 void *sys_dlopen(const char *name, int flags)
87 #if defined(HAVE_DLOPEN)
91 return dlopen(name, flags);
96 Index: samba-3.0.37/source/lib/util.c
97 ===================================================================
98 --- samba-3.0.37.orig/source/lib/util.c 2009-09-30 14:21:56.000000000 +0200
99 +++ samba-3.0.37/source/lib/util.c 2011-08-09 00:02:34.864444169 +0200
102 if ((p = getenv("TMPDIR")))
111 /****************************************************************************
112 Index: samba-3.0.37/source/libsmb/clifile.c
113 ===================================================================
114 --- samba-3.0.37.orig/source/libsmb/clifile.c 2009-09-30 14:21:56.000000000 +0200
115 +++ samba-3.0.37/source/libsmb/clifile.c 2011-08-09 00:02:34.864444169 +0200
118 #include "includes.h"
122 /****************************************************************************
123 Hard/Symlink a file (UNIX extensions).
124 Creates new name (sym)linked to oldname.
129 +#endif /* AVM_SMALLER */
132 /****************************************************************************
133 Map standard UNIX permissions onto wire representations.
134 ****************************************************************************/
142 /****************************************************************************
143 Do a POSIX getfacl (UNIX extensions).
144 ****************************************************************************/
149 +#endif /* AVM_SMALLER */
151 /****************************************************************************
152 Open a file - exposing the full horror of the NT API :-).
154 FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN, 0x0, 0x0);
158 /****************************************************************************
160 WARNING: if you open with O_WRONLY then getattrE won't work!
163 return SVAL(cli->inbuf,smb_vwv2);
165 +#endif /* AVM_SMALLER */
167 /****************************************************************************
170 return !cli_is_error(cli);
175 /****************************************************************************
176 send a lock with a specified locktype
177 @@ -1972,3 +1984,6 @@
179 return cli_posix_unlink_internal(cli, fname, True);
182 +#endif /* AVM_SMALLER */
184 Index: samba-3.0.37/source/libsmb/namequery.c
185 ===================================================================
186 --- samba-3.0.37.orig/source/libsmb/namequery.c 2009-09-30 14:21:56.000000000 +0200
187 +++ samba-3.0.37/source/libsmb/namequery.c 2011-08-09 00:02:34.864444169 +0200
188 @@ -1114,6 +1114,7 @@
189 const char *sitename,
190 struct ip_service **return_iplist, int *return_count)
196 @@ -1194,6 +1195,9 @@
200 +#else /* HAVE_ADS */
205 /*******************************************************************
206 Index: samba-3.0.37/source/libsmb/namequery_dc.c
207 ===================================================================
208 --- samba-3.0.37.orig/source/libsmb/namequery_dc.c 2009-09-30 14:21:56.000000000 +0200
209 +++ samba-3.0.37/source/libsmb/namequery_dc.c 2011-08-09 00:02:34.864444169 +0200
211 struct in_addr *dc_ip,
221 srv_name, inet_ntoa(*dc_ip)));
227 /****************************************************************************
228 Index: samba-3.0.37/source/modules/vfs_default.c
229 ===================================================================
230 --- samba-3.0.37.orig/source/modules/vfs_default.c 2009-09-30 14:21:56.000000000 +0200
231 +++ samba-3.0.37/source/modules/vfs_default.c 2011-08-09 14:13:37.593167315 +0200
234 #define DBGC_CLASS DBGC_VFS
236 +// AVM_SEC - avoid following NTFS symbolic links to "not allowed places"
241 +static int IsAllowed(const char *pa)
243 + // only allow access below /var/media/ftp/
247 +Log(("IsAllowed: checking %s", pa));
249 + char *path = strdup(pa);
250 + if (!path) goto no;
254 + char *p = &path[strlen(path)];
257 + if (path[0] == '\0') {
258 + if (0 == getcwd(buf, sizeof(buf))) {
260 + goto no; // failed - not allowed
264 + if (0 == realpath(path, buf)) ret = -1;
268 + // realpath failed - remove prev path component
270 + while(p > path && *(p-1) != '/') p--;
284 + // weitere pfadkompontenen // /./ und /../ auswerten
285 + // assert (*p ist '\0' oder '/')
286 + while(*p != '\0') {
291 + if (buf != strstr(buf, "/var/media/ftp")) goto no;
292 + c = buf[strlen("/var/media/ftp")];
293 + if (c != '/' && c != '\0') goto no;
295 +Log(("IsAllowed: %s ok", pa));
296 + if (path) free(path);
300 + Log(("IsAllowed: %s not allowed", pa ? pa : "(null)"));
301 + if (path) free(path);
308 /* Check for NULL pointer parameters in vfswrap_* functions */
310 /* We don't want to have NULL function pointers lying around. Someone
313 static int vfswrap_statvfs(struct vfs_handle_struct *handle, const char *path, vfs_statvfs_struct *statbuf)
316 + if (!IsAllowed(path)) { errno = EACCES; return -1; }
319 return sys_statvfs(path, statbuf);
324 SMB_STRUCT_DIR *result;
327 + if (!IsAllowed(fname)) { errno = EACCES; return 0; }
330 START_PROFILE(syscall_opendir);
331 result = sys_opendir(fname);
332 END_PROFILE(syscall_opendir);
335 BOOL has_dacl = False;
338 + if (!IsAllowed(path)) { errno = EACCES; return -1; }
341 START_PROFILE(syscall_mkdir);
343 if (lp_inherit_acls(SNUM(handle->conn)) && (has_dacl = directory_has_default_acl(handle->conn, parent_dirname(path))))
349 + if (!IsAllowed(path)) { errno = EACCES; return -1; }
352 START_PROFILE(syscall_rmdir);
353 result = rmdir(path);
354 END_PROFILE(syscall_rmdir);
360 + if (!IsAllowed(fname)) { errno = EACCES; return -1; }
363 START_PROFILE(syscall_open);
364 result = sys_open(fname, flags, mode);
365 END_PROFILE(syscall_open);
371 + if (!IsAllowed(source)) { errno = EACCES; return -1; }
372 + if (!IsAllowed(dest)) { errno = EACCES; return -1; }
375 if (sys_lstat (source, &source_stats) == -1)
383 + if (!IsAllowed(oldname)) { errno = EACCES; return -1; }
384 + if (!IsAllowed(newname)) { errno = EACCES; return -1; }
387 START_PROFILE(syscall_rename);
388 result = rename(oldname, newname);
389 if ((result == -1) && (errno == EXDEV)) {
395 + if (!IsAllowed(fname)) { errno = EACCES; return -1; }
398 START_PROFILE(syscall_stat);
399 result = sys_stat(fname, sbuf);
400 END_PROFILE(syscall_stat);
406 + if (!IsAllowed(path)) { errno = EACCES; return -1; }
409 START_PROFILE(syscall_lstat);
410 result = sys_lstat(path, sbuf);
411 END_PROFILE(syscall_lstat);
417 + if (!IsAllowed(path)) { errno = EACCES; return -1; }
420 START_PROFILE(syscall_unlink);
421 result = unlink(path);
422 END_PROFILE(syscall_unlink);
428 + if (!IsAllowed(path)) { errno = EACCES; return -1; }
431 START_PROFILE(syscall_chmod);
439 + if (!IsAllowed(path)) { errno = EACCES; return -1; }
442 START_PROFILE(syscall_chown);
443 result = sys_chown(path, uid, gid);
444 END_PROFILE(syscall_chown);
450 + if (!IsAllowed(path)) { errno = EACCES; return -1; }
453 START_PROFILE(syscall_chdir);
454 result = chdir(path);
455 END_PROFILE(syscall_chdir);
460 +#if 1 // AVM patch - don't growth the file (too much time and RAM for copy of large files to USB1.1 FAT filesystem)
462 + SMB_BIG_UINT big_len = len;
464 + result = SMB_VFS_FSTAT(fsp,fsp->fh->fd,&st);
465 + if (result == -1) {
469 + if (big_len == (SMB_BIG_UINT)st.st_size) {
474 + if (big_len > (SMB_BIG_UINT)st.st_size) {
475 + SMB_BIG_UINT space_avail;
476 + SMB_BIG_UINT bsize,dfree,dsize;
477 + big_len -= st.st_size;
478 + big_len /= 1024; /* Len is now number of 1k blocks needed. */
479 + space_avail = SMB_VFS_DISK_FREE(fsp->conn ,fsp->fsp_name,False,&bsize,&dfree,&dsize);
480 + if (space_avail == (SMB_BIG_UINT)-1) {
485 + if (big_len > space_avail) {
491 + // do nothing to be fast!
498 /* we used to just check HAVE_FTRUNCATE_EXTEND and only use
499 sys_ftruncate if the system supports it. Then I discovered that
500 you can have some filesystems that support ftruncate
506 + if (!IsAllowed(oldpath)) { errno = EACCES; return -1; }
507 + if (!IsAllowed(newpath)) { errno = EACCES; return -1; }
510 START_PROFILE(syscall_symlink);
511 result = sys_symlink(oldpath, newpath);
512 END_PROFILE(syscall_symlink);
513 @@ -840,6 +1009,10 @@
518 + if (!IsAllowed(path)) { errno = EACCES; return -1; }
521 START_PROFILE(syscall_readlink);
522 result = sys_readlink(path, buf, bufsiz);
523 END_PROFILE(syscall_readlink);
524 @@ -850,6 +1023,11 @@
529 + if (!IsAllowed(oldpath)) { errno = EACCES; return -1; }
530 + if (!IsAllowed(newpath)) { errno = EACCES; return -1; }
533 START_PROFILE(syscall_link);
534 result = sys_link(oldpath, newpath);
535 END_PROFILE(syscall_link);
541 + if (!IsAllowed(pathname)) { errno = EACCES; return -1; }
543 START_PROFILE(syscall_mknod);
544 result = sys_mknod(pathname, mode, dev);
545 END_PROFILE(syscall_mknod);
551 + if (!IsAllowed(path)) { errno = EACCES; return 0; }
553 START_PROFILE(syscall_realpath);
554 result = sys_realpath(path, resolved_path);
555 END_PROFILE(syscall_realpath);
556 Index: samba-3.0.37/source/param/loadparm.c
557 ===================================================================
558 --- samba-3.0.37.orig/source/param/loadparm.c 2009-09-30 14:21:56.000000000 +0200
559 +++ samba-3.0.37/source/param/loadparm.c 2011-08-09 00:02:34.874444169 +0200
560 @@ -2713,8 +2713,11 @@
562 slprintf(comment, sizeof(comment) - 1,
563 "IPC Service (%s)", Globals.szServerString);
566 + string_set(&ServicePtrs[i]->szPath, "/var/media/ftp");
568 string_set(&ServicePtrs[i]->szPath, tmpdir());
570 string_set(&ServicePtrs[i]->szUsername, "");
571 string_set(&ServicePtrs[i]->comment, comment);
572 string_set(&ServicePtrs[i]->fstype, "IPC");
573 Index: samba-3.0.37/source/registry/reg_frontend.c
574 ===================================================================
575 --- samba-3.0.37.orig/source/registry/reg_frontend.c 2009-09-30 14:21:56.000000000 +0200
576 +++ samba-3.0.37/source/registry/reg_frontend.c 2011-08-09 00:02:34.874444169 +0200
579 REGISTRY_HOOK reg_hooks[] = {
581 +#ifndef AVM_NO_PRINTING
582 { KEY_PRINTING, &printing_ops },
583 { KEY_PRINTING_2K, &printing_ops },
584 { KEY_PRINTING_PORTS, &printing_ops },
586 { KEY_SHARES, &shares_reg_ops },
589 Index: samba-3.0.37/source/rpc_client/cli_pipe.c
590 ===================================================================
591 --- samba-3.0.37.orig/source/rpc_client/cli_pipe.c 2009-09-30 14:21:56.000000000 +0200
592 +++ samba-3.0.37/source/rpc_client/cli_pipe.c 2011-08-09 00:02:34.874444169 +0200
595 DEBUG(1, ("cli_pipe_validate_current_pdu: RPC fault code %s received from remote machine %s "
596 "pipe %s fnum 0x%x!\n",
598 + "ERRSTR-REPLACEMENT",
600 dcerpc_errstr(NT_STATUS_V(fault_resp.status)),
604 (unsigned int)cli->fnum));
605 Index: samba-3.0.37/source/rpc_parse/parse_prs.c
606 ===================================================================
607 --- samba-3.0.37.orig/source/rpc_parse/parse_prs.c 2009-09-30 14:21:56.000000000 +0200
608 +++ samba-3.0.37/source/rpc_parse/parse_prs.c 2011-08-09 00:02:34.874444169 +0200
612 DEBUG(5,("%s%04x %s: %s\n", tab_depth(depth), ps->data_offset, name,
613 - dcerpc_errstr(NT_STATUS_V(*status))));
615 + "ERRSTR-REPLACEMENT"
617 + dcerpc_errstr(NT_STATUS_V(*status))
621 ps->data_offset += sizeof(uint32);
623 Index: samba-3.0.37/source/rpc_parse/parse_sec.c
624 ===================================================================
625 --- samba-3.0.37.orig/source/rpc_parse/parse_sec.c 2009-09-30 14:21:56.000000000 +0200
626 +++ samba-3.0.37/source/rpc_parse/parse_sec.c 2011-08-09 00:02:34.874444169 +0200
628 for you as it reads them.
629 ********************************************************************/
631 -BOOL sec_io_acl(const char *desc, SEC_ACL **ppsa, prs_struct *ps, int depth)
632 +static BOOL sec_io_acl(const char *desc, SEC_ACL **ppsa, prs_struct *ps, int depth)
636 Index: samba-3.0.37/source/rpc_parse/parse_spoolss.c
637 ===================================================================
638 --- samba-3.0.37.orig/source/rpc_parse/parse_spoolss.c 2009-09-30 14:21:56.000000000 +0200
639 +++ samba-3.0.37/source/rpc_parse/parse_spoolss.c 2011-08-09 00:02:34.874444169 +0200
641 if(!prs_uint32("count2", ps, depth, &type->count2))
644 - if (type->count2 != type->count)
645 + if (type->count2 != type->count) {
646 DEBUG(4,("What a mess, count was %x now is %x !\n", type->count, type->count2));
649 + if (type->count2 > MAX_NOTIFY_TYPE_FOR_NOW) {
653 if (type->count2 > MAX_NOTIFY_TYPE_FOR_NOW) {
655 Index: samba-3.0.37/source/rpc_server/srv_pipe.c
656 ===================================================================
657 --- samba-3.0.37.orig/source/rpc_server/srv_pipe.c 2009-09-30 14:21:56.000000000 +0200
658 +++ samba-3.0.37/source/rpc_server/srv_pipe.c 2011-08-09 00:02:34.884444169 +0200
659 @@ -2335,6 +2335,7 @@
665 lsa_get_pipe_fns( &cmds, &n_cmds );
667 @@ -2347,12 +2348,14 @@
669 netlog_get_pipe_fns( &cmds, &n_cmds );
671 +#endif /* AVM_SMALLER */
673 srvsvc_get_pipe_fns( &cmds, &n_cmds );
676 wkssvc_get_pipe_fns( &cmds, &n_cmds );
680 reg_get_pipe_fns( &cmds, &n_cmds );
682 @@ -2371,6 +2374,8 @@
684 ntsvcs_get_pipe_fns( &cmds, &n_cmds );
686 +#endif /* AVM_SMALLER */
690 echo_get_pipe_fns( &cmds, &n_cmds );
691 Index: samba-3.0.37/source/smbd/change_trust_pw.c
692 ===================================================================
693 --- samba-3.0.37.orig/source/smbd/change_trust_pw.c 2009-09-30 14:21:56.000000000 +0200
694 +++ samba-3.0.37/source/smbd/change_trust_pw.c 2011-08-09 00:02:34.884444169 +0200
697 NTSTATUS change_trust_account_password( const char *domain, const char *remote_machine)
700 + return NT_STATUS_UNSUCCESSFUL;
703 NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
704 struct in_addr pdc_ip;
707 DEBUG(5,("change_trust_account_password: sucess!\n"));
710 +#endif /* AVM_SMALLER */
712 Index: samba-3.0.37/source/smbd/close.c
713 ===================================================================
714 --- samba-3.0.37.orig/source/smbd/close.c 2009-09-30 14:21:56.000000000 +0200
715 +++ samba-3.0.37/source/smbd/close.c 2011-08-09 00:02:34.884444169 +0200
717 saved_status2 = close_filestruct(fsp);
719 if (fsp->print_file) {
720 +#ifndef AVM_NO_PRINTING
721 print_fsp_end(fsp, close_type);
726 Index: samba-3.0.37/source/smbd/conn.c
727 ===================================================================
728 --- samba-3.0.37.orig/source/smbd/conn.c 2009-09-30 14:21:56.000000000 +0200
729 +++ samba-3.0.37/source/smbd/conn.c 2011-08-09 00:02:34.884444169 +0200
731 * idle with a handle open.
736 for (plist = get_first_internal_pipe(); plist; plist = get_next_internal_pipe(plist))
737 if (plist->pipe_handles && plist->pipe_handles->count)
743 Index: samba-3.0.37/source/smbd/dfree.c
744 ===================================================================
745 --- samba-3.0.37.orig/source/smbd/dfree.c 2009-09-30 14:21:56.000000000 +0200
746 +++ samba-3.0.37/source/smbd/dfree.c 2011-08-09 00:02:34.884444169 +0200
747 @@ -130,11 +130,13 @@
752 if (disk_quotas(path, &bsize_q, &dfree_q, &dsize_q)) {
754 (*dfree) = MIN(*dfree,dfree_q);
755 (*dsize) = MIN(*dsize,dsize_q);
759 /* FIXME : Any reason for this assumption ? */
761 Index: samba-3.0.37/source/smbd/dosmode.c
762 ===================================================================
763 --- samba-3.0.37.orig/source/smbd/dosmode.c 2009-09-30 14:21:56.000000000 +0200
764 +++ samba-3.0.37/source/smbd/dosmode.c 2011-08-09 00:02:34.884444169 +0200
766 if (ISDOT(path) || ISDOTDOT(path)) {
773 if (!lp_dmapi_support(SNUM(conn)) || !dmapi_have_session()) {
777 return dmapi_file_flags(path);
781 /****************************************************************************
782 Index: samba-3.0.37/source/smbd/fileio.c
783 ===================================================================
784 --- samba-3.0.37.orig/source/smbd/fileio.c 2009-09-30 14:21:56.000000000 +0200
785 +++ samba-3.0.37/source/smbd/fileio.c 2011-08-09 00:02:34.884444169 +0200
788 static int wcp_file_size_change(files_struct *fsp)
790 +/* AVM: Fuer Pruefung des freien Speichers auf dem Datentraeger wird
791 + SMB_VFS_FTRUNCATE aufgerufen, auch falls es langsam sein sollte */
793 write_cache *wcp = fsp->wcp;
798 if (fsp->print_file) {
799 +#ifdef AVM_NO_PRINTING
809 return print_job_write(SNUM(fsp->conn), jobid, data, pos, n);
810 +#endif /* AVM_NO_PRINTING */
813 if (!fsp->can_write) {
814 Index: samba-3.0.37/source/smbd/files.c
815 ===================================================================
816 --- samba-3.0.37.orig/source/smbd/files.c 2009-09-30 14:21:56.000000000 +0200
817 +++ samba-3.0.37/source/smbd/files.c 2011-08-09 00:02:34.884444169 +0200
818 @@ -203,10 +203,12 @@
819 exit_server("out of memory in file_init");
824 * Ensure that pipe_handle_oppset is set correctly.
826 set_pipe_handle_offset(real_max_open_files);
830 /****************************************************************************
831 Index: samba-3.0.37/source/smbd/lanman.c
832 ===================================================================
833 --- samba-3.0.37.orig/source/smbd/lanman.c 2009-09-30 14:21:56.000000000 +0200
834 +++ samba-3.0.37/source/smbd/lanman.c 2011-08-09 00:02:34.884444169 +0200
839 +#ifndef AVM_NO_PRINTING
840 /****************************************************************************
842 ****************************************************************************/
847 +#endif /* AVM_NO_PRINTING */
849 static BOOL api_DosPrintQGetInfo(connection_struct *conn, uint16 vuid,
850 char *param, int tpscnt,
852 char **rdata,char **rparam,
853 int *rdata_len,int *rparam_len)
855 +#ifdef AVM_NO_PRINTING
858 char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
859 char *str2 = skip_string(param,tpscnt,str1);
860 char *p = skip_string(param,tpscnt,str2);
865 +#endif /* AVM_NO_PRINTING */
868 /****************************************************************************
870 char **rdata, char** rparam,
871 int *rdata_len, int *rparam_len)
873 +#ifdef AVM_NO_PRINTING
876 char *param_format = get_safe_str_ptr(param,tpscnt,param,2);
877 char *output_format1 = skip_string(param,tpscnt,param_format);
878 char *p = skip_string(param,tpscnt,output_format1);
879 @@ -1046,6 +1055,7 @@
883 +#endif /* AVM_NO_PRINTING */
886 /****************************************************************************
887 @@ -2539,6 +2549,9 @@
888 char **rdata,char **rparam,
889 int *rdata_len,int *rparam_len)
891 +#ifdef AVM_NO_PRINTING
894 int function = get_safe_SVAL(param,tpscnt,param,0,0);
895 char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
896 char *str2 = skip_string(param,tpscnt,str1);
897 @@ -2609,6 +2622,7 @@
898 SSVAL(*rparam,2,0); /* converter word */
904 /****************************************************************************
905 @@ -2622,6 +2636,9 @@
906 char **rdata,char **rparam,
907 int *rdata_len,int *rparam_len)
909 +#ifdef AVM_NO_PRINTING
912 int function = get_safe_SVAL(param,tpscnt,param,0,0);
913 char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
914 char *str2 = skip_string(param,tpscnt,str1);
915 @@ -2674,6 +2691,7 @@
916 SSVAL(*rparam,2,0); /* converter word */
922 /****************************************************************************
923 @@ -2714,6 +2732,9 @@
924 char **rdata,char **rparam,
925 int *rdata_len,int *rparam_len)
927 +#ifdef AVM_NO_PRINTING
930 struct pack_desc desc;
931 char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
932 char *str2 = skip_string(param,tpscnt,str1);
933 @@ -2788,6 +2809,7 @@
934 SSVAL(*rparam,2,0); /* converter word */
941 @@ -3579,6 +3601,9 @@
942 char **rdata,char **rparam,
943 int *rdata_len,int *rparam_len)
945 +#ifdef AVM_NO_PRINTING
948 char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
949 char *str2 = skip_string(param,tpscnt,str1);
950 char *p = skip_string(param,tpscnt,str2);
951 @@ -3669,6 +3694,7 @@
952 DEBUG(4,("WPrintJobGetInfo: errorcode %d\n",desc.errcode));
958 static BOOL api_WPrintJobEnumerate(connection_struct *conn, uint16 vuid,
959 @@ -3678,6 +3704,9 @@
960 char **rdata,char **rparam,
961 int *rdata_len,int *rparam_len)
963 +#ifdef AVM_NO_PRINTING
966 char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
967 char *str2 = skip_string(param,tpscnt,str1);
968 char *p = skip_string(param,tpscnt,str2);
969 @@ -3760,6 +3789,7 @@
970 DEBUG(4,("WPrintJobEnumerate: errorcode %d\n",desc.errcode));
976 static int check_printdest_info(struct pack_desc* desc,
977 @@ -3835,6 +3865,9 @@
978 char **rdata,char **rparam,
979 int *rdata_len,int *rparam_len)
981 +#ifdef AVM_NO_PRINTING
984 char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
985 char *str2 = skip_string(param,tpscnt,str1);
986 char *p = skip_string(param,tpscnt,str2);
987 @@ -3906,6 +3939,7 @@
994 static BOOL api_WPrintDestEnum(connection_struct *conn, uint16 vuid,
995 @@ -3915,6 +3949,9 @@
996 char **rdata,char **rparam,
997 int *rdata_len,int *rparam_len)
999 +#ifdef AVM_NO_PRINTING
1002 char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
1003 char *str2 = skip_string(param,tpscnt,str1);
1004 char *p = skip_string(param,tpscnt,str2);
1005 @@ -3987,6 +4024,7 @@
1006 DEBUG(4,("WPrintDestEnumerate: errorcode %d\n",desc.errcode));
1012 static BOOL api_WPrintDriverEnum(connection_struct *conn, uint16 vuid,
1013 @@ -3996,6 +4034,9 @@
1014 char **rdata,char **rparam,
1015 int *rdata_len,int *rparam_len)
1017 +#ifdef AVM_NO_PRINTING
1020 char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
1021 char *str2 = skip_string(param,tpscnt,str1);
1022 char *p = skip_string(param,tpscnt,str2);
1023 @@ -4050,6 +4091,7 @@
1024 DEBUG(4,("WPrintDriverEnum: errorcode %d\n",desc.errcode));
1030 static BOOL api_WPrintQProcEnum(connection_struct *conn, uint16 vuid,
1031 @@ -4059,6 +4101,9 @@
1032 char **rdata,char **rparam,
1033 int *rdata_len,int *rparam_len)
1035 +#ifdef AVM_NO_PRINTING
1038 char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
1039 char *str2 = skip_string(param,tpscnt,str1);
1040 char *p = skip_string(param,tpscnt,str2);
1041 @@ -4113,6 +4158,7 @@
1042 DEBUG(4,("WPrintQProcEnum: errorcode %d\n",desc.errcode));
1048 static BOOL api_WPrintPortEnum(connection_struct *conn, uint16 vuid,
1049 @@ -4122,6 +4168,9 @@
1050 char **rdata,char **rparam,
1051 int *rdata_len,int *rparam_len)
1053 +#ifdef AVM_NO_PRINTING
1056 char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
1057 char *str2 = skip_string(param,tpscnt,str1);
1058 char *p = skip_string(param,tpscnt,str2);
1059 @@ -4178,6 +4227,7 @@
1060 DEBUG(4,("WPrintPortEnum: errorcode %d\n",desc.errcode));
1066 /****************************************************************************
1067 Index: samba-3.0.37/source/smbd/open.c
1068 ===================================================================
1069 --- samba-3.0.37.orig/source/smbd/open.c 2009-09-30 14:21:56.000000000 +0200
1070 +++ samba-3.0.37/source/smbd/open.c 2011-08-09 00:02:34.884444169 +0200
1071 @@ -1155,8 +1155,11 @@
1074 DEBUG(10, ("open_file_ntcreate: printer open fname=%s\n", fname));
1076 +#ifdef AVM_NO_PRINTING
1077 + return NT_STATUS_OK;
1079 return print_fsp_open(conn, fname, result);
1083 if (!parent_dirname_talloc(tmp_talloc_ctx(), fname, &parent_dir,
1084 Index: samba-3.0.37/source/smbd/process.c
1085 ===================================================================
1086 --- samba-3.0.37.orig/source/smbd/process.c 2009-09-30 14:21:56.000000000 +0200
1087 +++ samba-3.0.37/source/smbd/process.c 2011-08-09 00:02:34.894444169 +0200
1088 @@ -1028,7 +1028,9 @@
1092 +#ifndef AVM_SMALLER
1097 return(reply_special(inbuf,outbuf));
1098 @@ -1268,9 +1270,11 @@
1100 select_timeout = blocking_locks_timeout_ms(SMBD_SELECT_TIMEOUT*1000);
1102 +#ifndef AVM_NO_PRINTING
1103 if (print_notify_messages_pending()) {
1104 select_timeout = MIN(select_timeout, 1000);
1108 return select_timeout;
1110 @@ -1461,9 +1465,10 @@
1112 process_blocking_lock_queue();
1114 +#ifndef AVM_NO_PRINTING
1115 /* update printer queue caches if necessary */
1117 update_monitored_printq_cache();
1121 * Now we are root, check if the log files need pruning.
1122 @@ -1472,9 +1477,10 @@
1123 force_check_log_size();
1126 +#ifndef AVM_NO_PRINTING
1127 /* Send any queued printer notify message to interested smbd's. */
1129 print_notify_send_messages(0);
1133 * Modify the select timeout depending upon
1134 Index: samba-3.0.37/source/smbd/reply.c
1135 ===================================================================
1136 --- samba-3.0.37.orig/source/smbd/reply.c 2009-09-30 14:21:56.000000000 +0200
1137 +++ samba-3.0.37/source/smbd/reply.c 2011-08-09 00:02:34.894444169 +0200
1138 @@ -3606,7 +3606,10 @@
1141 START_PROFILE(SMBsplopen);
1143 +#ifdef AVM_NO_PRINTING
1144 + END_PROFILE(SMBsplopen);
1145 + return ERROR_DOS(ERRDOS,ERRnoaccess);
1147 if (!CAN_PRINT(conn)) {
1148 END_PROFILE(SMBsplopen);
1149 return ERROR_DOS(ERRDOS,ERRnoaccess);
1150 @@ -3628,6 +3631,7 @@
1152 END_PROFILE(SMBsplopen);
1157 /****************************************************************************
1158 @@ -3644,6 +3648,10 @@
1160 CHECK_FSP(fsp,conn);
1162 +#ifdef AVM_NO_PRINTING
1163 + END_PROFILE(SMBsplretq);
1164 + return ERROR_DOS(ERRDOS,ERRnoaccess);
1166 if (!CAN_PRINT(conn)) {
1167 END_PROFILE(SMBsplclose);
1168 return ERROR_NT(NT_STATUS_DOS(ERRSRV, ERRerror));
1169 @@ -3661,6 +3669,7 @@
1171 END_PROFILE(SMBsplclose);
1176 /****************************************************************************
1177 @@ -3670,6 +3679,10 @@
1178 int reply_printqueue(connection_struct *conn,
1179 char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
1181 +#ifdef AVM_NO_PRINTING
1182 + END_PROFILE(SMBsplretq);
1183 + return ERROR_DOS(ERRDOS,ERRnoaccess);
1185 int outsize = set_message(outbuf,2,3,True);
1186 int max_count = SVAL(inbuf,smb_vwv0);
1187 int start_index = SVAL(inbuf,smb_vwv1);
1188 @@ -3732,6 +3745,7 @@
1190 END_PROFILE(SMBsplretq);
1195 /****************************************************************************
1196 Index: samba-3.0.37/source/smbd/server.c
1197 ===================================================================
1198 --- samba-3.0.37.orig/source/smbd/server.c 2009-09-30 14:21:56.000000000 +0200
1199 +++ samba-3.0.37/source/smbd/server.c 2011-08-09 00:02:34.894444169 +0200
1202 #include "includes.h"
1205 +/* AVM ???? static_decl_rpc; */
1207 static int am_parent = 1;
1210 **************************************************************************/
1211 void reload_printers(void)
1213 +#ifndef AVM_NO_PRINTING
1215 int n_services = lp_numservices();
1216 int pnum = lp_servicenumber(PRINTERS_NAME);
1221 +#endif /* AVM_NO_PRINTING */
1224 /****************************************************************************
1227 invalidate_all_vuids();
1229 +#ifndef AVM_NO_PRINTING
1230 print_notify_send_messages(3); /* 3 second timeout. */
1233 /* delete our entry in the connections database. */
1234 yield_connection(NULL,"");
1239 +#ifndef AVM_NO_PRINTING
1243 if (how != SERVER_EXIT_NORMAL) {
1244 int oldlevel = DEBUGLEVEL;
1246 mkproto.h. Mixing $(builddir) and $(srcdir) source files in the current
1247 prototype generation system is too complicated. */
1250 extern void build_options(BOOL screen);
1253 int main(int argc,const char *argv[])
1255 @@ -833,6 +841,13 @@
1256 static char *ports = NULL;
1257 static char *profile_level = NULL;
1261 + extern void crashdump_init(char*);
1262 + crashdump_init("smbd");
1265 +#ifndef AVM_NO_POPT
1268 struct poptOption long_options[] = {
1270 {"foreground", 'F', POPT_ARG_VAL, &Fork, False, "Run daemon in foreground (for daemontools, etc.)" },
1271 {"no-process-group", '\0', POPT_ARG_VAL, &no_process_group, True, "Don't create a new process group" },
1272 {"log-stdout", 'S', POPT_ARG_VAL, &log_stdout, True, "Log to stdout" },
1274 {"build-options", 'b', POPT_ARG_NONE, NULL, 'b', "Print build options" },
1276 {"port", 'p', POPT_ARG_STRING, &ports, 0, "Listen on the specified ports"},
1277 {"profiling-level", 'P', POPT_ARG_STRING, &profile_level, 0, "Set profiling level","PROFILE_LEVEL"},
1279 @@ -861,21 +878,31 @@
1280 pc = poptGetContext("smbd", argc, argv, long_options, 0);
1282 while((opt = poptGetNextOpt(pc)) != -1) {
1286 build_options(True); /* Display output to screen as well as debug */
1293 poptFreeContext(pc);
1295 + load_case_tables();
1296 +#endif /* AVM_NO_POPT */
1300 /* needed for SecureWare on SCO */
1305 + setpriority(PRIO_PROCESS, 0, 19); /* be nice */
1310 set_remote_machine_name("smbd", False);
1311 @@ -903,6 +930,16 @@
1312 /* make absolutely sure we run as root - to handle cases where people
1313 are crazy enough to have it setuid */
1315 + generate_random_buffer(NULL, 0);
1317 + /* make absolutely sure we run as root - to handle cases where people
1318 + are crazy enough to have it setuid */
1320 + gain_root_privilege();
1321 + gain_root_group_privilege();
1323 + fault_setup((void (*)(void *))exit_server_fault);
1324 + dump_core_setup("smbd");
1325 gain_root_privilege();
1326 gain_root_group_privilege();
1328 @@ -945,8 +982,10 @@
1329 DEBUG(2,("uid=%d gid=%d euid=%d egid=%d\n",
1330 (int)getuid(),(int)getgid(),(int)geteuid(),(int)getegid()));
1333 /* Output the build options to the debug log */
1334 build_options(False);
1337 if (sizeof(uint16) < 2 || sizeof(uint32) < 4) {
1338 DEBUG(0,("ERROR: Samba is not configured correctly for the word size on your machine\n"));
1339 @@ -1042,16 +1081,20 @@
1343 +#ifndef AVM_SMALLER
1344 if (!init_registry())
1349 if (!init_svcctl_db())
1353 +#ifndef AVM_NO_PRINTING
1354 if (!print_backend_init())
1358 if (!init_guest_info()) {
1359 DEBUG(0,("ERROR: failed to setup guest info.\n"));
1360 @@ -1068,14 +1111,18 @@
1361 smbd is launched via inetd and we fork a copy of
1364 +#ifndef AVM_NO_PRINTING
1365 if ( is_daemon && !interactive )
1366 start_background_queue();
1370 /* Always attempt to initialize DMAPI. We will only use it later if
1371 * lp_dmapi_support is set on the share, but we need a single global
1372 * session to work with.
1374 dmapi_init_session();
1377 if (!open_sockets_smbd(is_daemon, interactive, ports))
1379 @@ -1084,7 +1131,12 @@
1380 * everything after this point is run after the fork()
1386 + rpc_wkssvc_init();
1392 Index: samba-3.0.37/source/smbd/service.c
1393 ===================================================================
1394 --- samba-3.0.37.orig/source/smbd/service.c 2009-09-30 14:21:56.000000000 +0200
1395 +++ samba-3.0.37/source/smbd/service.c 2011-08-09 00:02:34.894444169 +0200
1397 iService = add_home_service(service,service /* 'username' */, phome_dir);
1400 +#ifndef AVM_NO_PRINTING
1401 /* If we still don't have a service, attempt to add it as a printer. */
1403 int iPrinterService;
1408 +#endif /* AVM_NO_PRINTING */
1410 /* Check for default vfs service? Unsure whether to implement this */
1412 @@ -1225,7 +1227,9 @@
1413 void close_cnum(connection_struct *conn, uint16 vuid)
1416 +#ifndef AVM_SMALLER
1417 pipe_close_conn(conn);
1420 file_close_conn(conn);
1421 dptr_closecnum(conn);
1422 Index: samba-3.0.37/source/smbd/trans2.c
1423 ===================================================================
1424 --- samba-3.0.37.orig/source/smbd/trans2.c 2009-09-30 14:21:56.000000000 +0200
1425 +++ samba-3.0.37/source/smbd/trans2.c 2011-08-09 00:02:34.904444169 +0200
1426 @@ -2878,11 +2878,14 @@
1427 /* unknown_2 6 NULL bytes follow*/
1429 /* now set the quotas */
1431 + return ERROR_DOS(ERRSRV,ERRerror);
1433 if (vfs_set_ntquota(fsp, SMB_USER_FS_QUOTA_TYPE, NULL, "as)!=0) {
1434 DEBUG(0,("vfs_set_ntquota() failed for service [%s]\n",lp_servicename(SNUM(conn))));
1435 return ERROR_DOS(ERRSRV,ERRerror);
1442 Index: samba-3.0.37/source/utils/avm_smbpasswd.c
1443 ===================================================================
1444 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
1445 +++ samba-3.0.37/source/utils/avm_smbpasswd.c 2011-08-09 00:02:34.904444169 +0200
1448 + * Unix SMB/CIFS implementation.
1449 + * Copyright (C) Jeremy Allison 1995-1998
1450 + * Copyright (C) Tim Potter 2001
1452 + * This program is free software; you can redistribute it and/or modify it
1453 + * under the terms of the GNU General Public License as published by the
1454 + * Free Software Foundation; either version 2 of the License, or (at your
1455 + * option) any later version.
1457 + * This program is distributed in the hope that it will be useful, but WITHOUT
1458 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1459 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
1462 + * You should have received a copy of the GNU General Public License along with
1463 + * this program; if not, write to the Free Software Foundation, Inc., 675
1464 + * Mass Ave, Cambridge, MA 02139, USA. */
1466 +#include "includes.h"
1469 +void E_md4hash(const char *passwd, uchar p16[16])
1472 + smb_ucs2_t wpwd[129];
1476 + /* Password must be converted to NT unicode - null terminated. */
1477 + len = strlen(passwd);
1479 + push_ucs2(NULL, wpwd, (const char *)passwd, 256, STR_UNICODE|STR_NOALIGN|STR_TERMINATE);
1481 + for (i = 0; i < len; i++) {
1482 + wpwd[i] = (unsigned char)passwd[i];
1484 + wpwd[i] = 0; // termination
1486 + /* Calculate length in bytes */
1487 + len = len /*strlen_w(wpwd)*/ * sizeof(int16);
1489 + mdfour(p16, (unsigned char *)wpwd, len);
1490 + ZERO_STRUCT(wpwd);
1494 + * Creates the DES forward-only Hash of the users password in DOS ASCII charset
1495 + * @param passwd password in 'unix' charset.
1496 + * @param p16 return password hashed with DES, caller allocated 16 byte buffer
1497 + * @return False if password was > 14 characters, and therefore may be incorrect, otherwise True
1498 + * @note p16 is filled in regardless
1501 +BOOL E_deshash(const char *passwd, uchar p16[16])
1504 + char dospwd[256+2];
1508 + /* Password must be converted to DOS charset - null terminated, uppercase. */
1509 +// push_ascii(dospwd, passwd, sizeof(dospwd), STR_UPPER|STR_TERMINATE);
1510 + len = strlen(passwd);
1511 + for (i = 0; i < len; i++) {
1512 + char c = passwd[i];
1513 + if (islower(c)) c = toupper(c);
1518 + /* Only the fisrt 14 chars are considered, password need not be null terminated. */
1519 + E_P16((const unsigned char *)dospwd, p16);
1521 + if (strlen(dospwd) > 14) {
1525 + memset(dospwd, 0, sizeof(dospwd));
1526 + // ZERO_STRUCT(dospwd);
1531 +static void my_pdb_sethexpwd(char *p, const unsigned char *pwd)
1533 + if (pwd != NULL) {
1535 + for (i = 0; i < 16; i++)
1536 + slprintf(&p[i*2], 3, "%02X", pwd[i]);
1538 + strncpy(p, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 32);
1542 +static void crypt_password (const char *user_name,
1543 + const char *new_passwd, char *new_lanman_p16, char *new_nt_p16)
1545 + /* Calculate the MD4 hash (NT compatible) of the password */
1546 + E_md4hash(new_passwd, new_nt_p16);
1548 + if (!E_deshash(new_passwd, new_lanman_p16)) {
1549 + /* E_deshash returns false for 'long' passwords (> 14
1550 + DOS chars). This allows us to match Win2k, which
1551 + does not store a LM hash for these passwords (which
1552 + would reduce the effective password length to 14 */
1554 + memset(new_lanman_p16, 0, LM_HASH_LEN);
1559 +ftpuser:1000:8C6F5D02DEB21501AAD3B435B51404EE:E0FBA38268D0EC66EF1CB452D5885E53:[UX ]:LCT-00000000:
1562 +/*********************************************************
1564 +**********************************************************/
1565 +int main(int argc, char **argv)
1567 + char *passwd_filename = "/var/samba/private/smbpasswd";
1568 + char *cleartext_filename = "/var/tmp/smbpasswd.cleartext";
1571 + fprintf(stderr, "use: smbpasswd\n");
1572 + fprintf(stderr, " file %s will be encrypted to %s\n", cleartext_filename, passwd_filename);
1576 + FILE *fp = fopen(passwd_filename, "w");
1579 + fprintf(stderr, "can't write %s\n", passwd_filename);
1582 + /* Make sure it is only rw by the owner */
1583 + chmod(passwd_filename, 0600);
1586 + FILE *fp_in = fopen(cleartext_filename, "r");
1588 + fprintf(stderr, "can't read %s\n", cleartext_filename);
1596 + unsigned nusers = 0;
1597 + while(line == fgets(line, sizeof(line)-1, fp_in)) {
1598 + char *username, *passwd, *extra;
1600 + uchar new_lanman_p16[LM_HASH_LEN];
1601 + uchar new_nt_p16[NT_HASH_LEN];
1602 + char ascii_p16[32+1];
1605 + line[sizeof(line)-1] = '\0';
1606 + if (strlen(line)) {
1607 + p = &line[strlen(line)-1];
1608 + while(p >= line) {
1609 + if (*p != '\n' && *p != '\r') break;
1616 + char *p2 = strchr(p, ':');
1617 + if (!p2) goto err;
1622 + p2 = strchr(p, ':');
1623 + if (!p2) goto err;
1628 + p2 = strchr(p, ':');
1629 + if (!p2) goto err;
1635 + crypt_password(username, passwd, new_lanman_p16, new_nt_p16);
1637 + fprintf(fp, "%s:%u:", username, uid);
1639 + my_pdb_sethexpwd(ascii_p16, new_lanman_p16);
1640 + ascii_p16[32] = '\0';
1641 + fprintf(fp, "%s:", ascii_p16);
1643 + my_pdb_sethexpwd(ascii_p16, new_nt_p16);
1644 + ascii_p16[32] = '\0';
1645 + fprintf(fp, "%s:", ascii_p16);
1647 + fprintf(fp, "%s\n", extra);
1656 +fprintf(stderr, "%u samba users written to %s\n", nusers, passwd_filename);
1659 Index: samba-3.0.37/source/Makefile.in
1660 ===================================================================
1661 --- samba-3.0.37.orig/source/Makefile.in 2009-09-30 14:21:56.000000000 +0200
1662 +++ samba-3.0.37/source/Makefile.in 2011-08-09 14:13:50.623167315 +0200
1664 lib/adt_tree.o lib/gencache.o $(TDB_OBJ) \
1665 lib/module.o lib/events.o lib/ldap_escape.o @CHARSET_STATIC@ \
1666 lib/secdesc.o lib/util_seaccess.o lib/secace.o lib/secacl.o \
1667 - libads/krb5_errs.o lib/system_smbd.o lib/audit.o
1668 + lib/system_smbd.o lib/audit.o
1670 LIB_OBJ = $(LIB_WITHOUT_PROTO_OBJ) $(LIB_WITH_PROTO_OBJ)
1674 PARAM_OBJ = dynconfig.o param/loadparm.o param/params.o lib/sharesec.o lib/ldap_debug_handler.o
1676 -KRBCLIENT_OBJ = libads/kerberos.o libads/ads_status.o
1677 +KRBCLIENT_OBJ = libads/ads_status.o
1679 LIBADDNS_OBJ0 = libaddns/dnsrecord.o libaddns/dnsutils.o libaddns/dnssock.o \
1680 libaddns/dnsgss.o libaddns/dnsmarshall.o
1681 @@ -282,14 +282,9 @@
1682 libgpo/gpo_fetch.o libgpo/gpo_filesync.o
1683 LIBGPO_OBJ = $(LIBGPO_OBJ0)
1685 -LIBADS_OBJ = libads/ldap.o libads/ldap_printer.o libads/sasl.o \
1686 - libads/krb5_setpw.o libads/ldap_user.o \
1687 - libads/ads_struct.o libads/kerberos_keytab.o \
1688 - libads/disp_sec.o libads/ads_utils.o libads/ldap_utils.o \
1689 - libads/authdata.o libads/cldap.o libads/util.o
1692 -LIBADS_SERVER_OBJ = libads/kerberos_verify.o \
1693 - libads/ldap_schema.o
1694 +LIBADS_SERVER_OBJ =
1696 SECRETS_OBJ = passdb/secrets.o passdb/machine_sid.o
1699 printing/printfsp.o lib/sysquotas.o lib/sysquotas_linux.o \
1700 lib/sysquotas_xfs.o lib/sysquotas_4A.o \
1701 smbd/change_trust_pw.o smbd/fake_file.o \
1702 - smbd/quotas.o smbd/ntquotas.o $(AFS_OBJ) smbd/msdfs.o \
1703 + smbd/ntquotas.o $(AFS_OBJ) smbd/msdfs.o \
1704 $(AFS_SETTOKEN_OBJ) smbd/aio.o smbd/statvfs.o \
1705 smbd/dmapi.o $(MANGLE_OBJ) @VFS_STATIC@
1708 NTLM_AUTH_OBJ1 = utils/ntlm_auth.o utils/ntlm_auth_diagnostics.o
1710 NTLM_AUTH_OBJ = ${NTLM_AUTH_OBJ1} $(LIBSAMBA_OBJ) $(POPT_LIB_OBJ) \
1711 - libsmb/asn1.o libsmb/spnego.o libsmb/clikrb5.o libads/kerberos.o \
1712 - libads/kerberos_verify.o $(SECRETS_OBJ) $(SERVER_MUTEX_OBJ) \
1713 - libads/authdata.o $(RPC_PARSE_OBJ1) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
1714 + libsmb/asn1.o libsmb/spnego.o libsmb/clikrb5.o \
1715 + $(SECRETS_OBJ) $(SERVER_MUTEX_OBJ) \
1716 + $(RPC_PARSE_OBJ1) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
1717 $(SMBLDAP_OBJ) $(DOSERR_OBJ) rpc_parse/parse_net.o $(LIBNMB_OBJ) \
1718 $(LDB_OBJ) libsmb/errormap.o