Browse code

dev_tが32bitでも64bitとして扱うようにした

Masanobu Yasui authored on 2008/11/12 06:02:50
Showing 3 changed files
... ...
@@ -830,10 +830,10 @@ void chexit()
830 830
   char cwd[PATH_MAX];
831 831
   if(moption.chroot){
832 832
     if(uname(&uts) == -1){
833
-      return(-1);
833
+      return;
834 834
     }
835 835
     if(strcmp("Linux", uts.sysname)){
836
-      return(-1);
836
+      return;
837 837
     }
838 838
     /*----- chroot exit(linux only) -----*/
839 839
     mtempname("",".MAKUOWORK",cwd);
... ...
@@ -848,7 +848,7 @@ void chexit()
848 848
     }
849 849
     chroot(".");
850 850
   }
851
-  return(0);
851
+  return;
852 852
 }
853 853
 
854 854
 void restoreguid()
... ...
@@ -689,6 +689,7 @@ static mfile *mrecv_req_send_create(mdata *data, struct sockaddr_in *addr)
689 689
   mfile *m;
690 690
   uint16_t fnlen;
691 691
   uint16_t lnlen;
692
+  uint64_t  rdev;
692 693
 
693 694
   if(data->head.nstate != MAKUO_SENDSTATE_STAT){
694 695
     return(NULL);
... ...
@@ -729,11 +730,12 @@ static mfile *mrecv_req_send_create(mdata *data, struct sockaddr_in *addr)
729 729
   data->p += lnlen;
730 730
 
731 731
   /* rdev */
732
-  m->fs.st_rdev  = ntohl(*(uint32_t *)(data->p));
732
+  rdev = ntohl(*(uint32_t *)(data->p));
733 733
   data->p += sizeof(uint32_t);
734
-  m->fs.st_rdev <<= 32;
735
-  m->fs.st_rdev |= ntohl(*(uint32_t *)(data->p));
734
+  rdev <<= 32;
735
+  rdev |= ntohl(*(uint32_t *)(data->p));
736 736
   data->p += sizeof(uint32_t);
737
+  m->fs.st_rdev = (dev_t)rdev;
737 738
 
738 739
   /* Number of blocks */
739 740
   m->seqnomax = m->fs.st_size / MAKUO_BUFFER_SIZE;
... ...
@@ -199,7 +199,8 @@ static void msend_req_send_break(int s, mfile *m)
199 199
 
200 200
 static void msend_req_send_stat_init(int s, mfile *m)
201 201
 {
202
-  mstat fs;
202
+  mstat    fs;
203
+  uint64_t rdev;
203 204
   if(!m->comm){
204 205
     msend_mfdel(m);
205 206
     m = NULL;
... ...
@@ -230,9 +231,11 @@ static void msend_req_send_stat_init(int s, mfile *m)
230 230
   m->mdata.p += strlen(m->fn);
231 231
   strcpy(m->mdata.p, m->ln);
232 232
   m->mdata.p += strlen(m->ln);
233
-  *(uint32_t *)(m->mdata.p) = htonl((uint32_t)(m->fs.st_rdev >> 32));
233
+
234
+  rdev = (uint64_t)(m->fs.st_rdev);
235
+  *(uint32_t *)(m->mdata.p) = htonl((uint32_t)(rdev >> 32));
234 236
   m->mdata.p += sizeof(uint32_t);
235
-  *(uint32_t *)(m->mdata.p) = htonl((uint32_t)(m->fs.st_rdev & 0xFFFFFFFF));
237
+  *(uint32_t *)(m->mdata.p) = htonl((uint32_t)(rdev & 0xFFFFFFFF));
236 238
   m->mdata.p += sizeof(uint32_t);
237 239
   m->sendwait  = 1;
238 240
   m->initstate = 0;