diff options
author | Tim Potter <tpot@samba.org> | 2000-02-03 23:08:24 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2000-02-03 23:08:24 +0000 |
commit | 176c405d2702a4245561ff56c8eac3c754a0dea3 (patch) | |
tree | 6d82ba6a996929720356e72c911c9e1fe09f7de6 /source/smbd/ipc.c | |
parent | 8b26be1e82d329c9ea8a1d6a71e5e9f440eb93ac (diff) | |
download | samba-176c405d2702a4245561ff56c8eac3c754a0dea3.tar.gz samba-176c405d2702a4245561ff56c8eac3c754a0dea3.tar.xz samba-176c405d2702a4245561ff56c8eac3c754a0dea3.zip |
Put back lots of missing calls to dos_to_unix(). Thanks to
aono@cc.osaka-kyoiku.ac.jp (Tomoki AONO)
Diffstat (limited to 'source/smbd/ipc.c')
-rw-r--r-- | source/smbd/ipc.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/source/smbd/ipc.c b/source/smbd/ipc.c index 3e16dba4f59..b5a6e4ba902 100644 --- a/source/smbd/ipc.c +++ b/source/smbd/ipc.c @@ -2055,6 +2055,7 @@ static BOOL api_PrintJobInfo(connection_struct *conn,uint16 vuid,char *param,cha if (isalpha((int)*s)) { pstring name; int l = 0; + while (l<64 && *s) { if (issafe(*s)) name[l++] = *s; s++; @@ -2066,17 +2067,23 @@ static BOOL api_PrintJobInfo(connection_struct *conn,uint16 vuid,char *param,cha fsp = file_find_print(); if (fsp) { - connection_struct *fconn = fsp->conn; - unbecome_user(); - - if (!become_user(fconn,vuid) || - !become_service(fconn,True)) - break; + pstring zfrom,zto; + connection_struct *fconn = fsp->conn; + + unbecome_user(); - if (fsp->conn->vfs_ops.rename(fsp->fsp_name,name) == 0) { - string_set(&fsp->fsp_name,name); - } - break; + if (!become_user(fconn,vuid) || + !become_service(fconn,True)) + break; + + pstrcpy(zfrom, dos_to_unix(fsp->fsp_name,False)); + pstrcpy(zto, dos_to_unix(name,False)); + + if (fsp->conn->vfs_ops.rename(zfrom,zto) == 0) { + string_set(&fsp->fsp_name,name); + } + + break; } } desc.errcode=NERR_Success; |