Bug 3822 - String overflow in vfs_recycle.c
: String overflow in vfs_recycle.c
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/samba)
: unstable
: all Linux
: P2 minor
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2004-03-12 02:09 by
Modified: 2009-05-10 09:32 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2004-03-12 02:09:49
Обнаружил в самбе небольшую ошибку.
Версия - samba-3.0.2a-alt1.M22 (сборка для Мастера)

Проявляется при активизации мусорной корзины с keeptree = yes:

[Disk_K]
comment = Disk for all
path = /home/samba/k
public = yes
writable = yes
create mask = 0666
directory mask = 777
vfs objects = recycle
recycle: keeptree = yes
recycle: maxsize = 200000000
recycle: exclude = *.avi, *.mp3, *.jpg, *.gif

При удалении каталогов на расшаренном ресурсе в логах
появляются ошибки (впрочем на работе это не сказывается):

  recycle: creating new dir .recycle/22
[2004/03/10 10:51:56, 0] lib/util_str.c:safe_strcat_fn(629)
  ERROR: string overflow by 1 in safe_strcat [/]

Расследование показало, что переполнение происходит при последнем прохождении
цикла for в функции recycle_create_dir при вызове
 safe_strcat(new_dir, "/", len);
а len определен без учета этого лишнего "/"

Патчик для исправления:
diff -urN samba-3.0.release.orig/source/modules/vfs_recycle.c
samba-3.0.release/source/modules/vfs_recycle.c
--- samba-3.0.release.orig/source/modules/vfs_recycle.c	2003-10-11 21:34:20 +1000
+++ samba-3.0.release/source/modules/vfs_recycle.c	2004-03-10 14:27:08 +0900
@@ -219,7 +219,7 @@
 	ALLOC_CHECK(tmp_str, done);
 	tok_str = tmp_str;
 
-	len = strlen(dname);
+	len = strlen(dname) + 1; // 1 - for  dname+"/"
 	new_dir = (char *)malloc(len + 1);
 	ALLOC_CHECK(new_dir, done);
 	*new_dir = '\0';





Expected Results:  
 recycle: creating new dir .recycle/22
[2004/03/10 10:51:56, 0] lib/util_str.c:safe_strcat_fn(629)
  ERROR: string overflow by 1 in safe_strcat [/]
------- Comment #1 From 2004-03-12 17:57:49 -------
Applied fix to CVS, will be in 3.0.2a-alt6
------- Comment #2 From 2004-03-15 02:12:16 -------
Хорошо