diff --git a/src/base/linuxthreads.cc b/src/base/linuxthreads.cc
index 891e70c..1e7f137 100644
--- a/src/base/linuxthreads.cc
+++ b/src/base/linuxthreads.cc
@@ -333,7 +333,7 @@
     sa.sa_flags      = SA_ONSTACK|SA_SIGINFO|SA_RESETHAND;
     sys_sigaction(sync_signals[sig], &sa, (struct kernel_sigaction *)NULL);
   }
-  
+
   /* Read process directories in /proc/...                                   */
   for (;;) {
     /* Some kernels know about threads, and hide them in "/proc"
@@ -349,7 +349,7 @@
     }
     if (sys_fstat(proc, &proc_sb) < 0)
       goto failure;
-    
+
     /* Since we are suspending threads, we cannot call any libc
      * functions that might acquire locks. Most notably, we cannot
      * call malloc(). So, we have to allocate memory on the stack,
@@ -363,7 +363,7 @@
      */
     if (max_threads < proc_sb.st_nlink + 100)
       max_threads = proc_sb.st_nlink + 100;
-    
+
     /* scope */ {
       pid_t pids[max_threads];
       int   added_entries = 0;
@@ -395,11 +395,11 @@
           if (entry->d_ino != 0) {
             const char *ptr = entry->d_name;
             pid_t pid;
-            
+
             /* Some kernels hide threads by preceding the pid with a '.'     */
             if (*ptr == '.')
               ptr++;
-            
+
             /* If the directory is not numeric, it cannot be a
              * process/thread
              */
@@ -413,7 +413,7 @@
               char fname[entry->d_reclen + 48];
               strcat(strcat(strcpy(fname, "/proc/"),
                             entry->d_name), marker_path);
-              
+
               /* Check if the marker is identical to the one we created      */
               if (sys_stat(fname, &tmp_sb) >= 0 &&
                   marker_sb.st_ino == tmp_sb.st_ino) {
@@ -429,7 +429,7 @@
                     goto next_entry;
                   }
                 }
-                
+
                 /* Check whether data structure needs growing                */
                 if (num_threads >= max_threads) {
                   /* Back to square one, this time with more memory          */
