Changeset 18409


Ignore:
Timestamp:
2009/12/01 22:22:59 (11 years ago)
Author:
kajiwara
Message:

#566 CSVアップロードで無限ループが発生する可能性があるソースを修正しました

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_4/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php

    r18369 r18409  
    108108                    // レコード数を得る 
    109109                    $rec_count = $this->lfCSVRecordCount($enc_filepath); 
     110                    if ($rec_count === false) { 
     111                        $err = false; 
     112                        $arrErr['bad_file_pointer'] = "※ 不正なファイルポインタが検出されました"; 
     113                    } 
    110114 
    111115                    $fp = fopen($enc_filepath, "r"); 
     
    339343     * 
    340344     * @param string $file_name ファイルパス 
    341      * @return integer CSV のカウント数 
     345     * @return mixed CSV のカウント数; $file_name が無効な場合は false 
    342346     */ 
    343347    function lfCSVRecordCount($file_name) { 
    344348        $count = 0; 
    345349        $fp = fopen($file_name, "r"); 
    346         while(!feof($fp)) { 
    347             $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 
    348             $count++; 
    349         } 
    350  
     350        if ($fp !== false) { 
     351            while(!feof($fp)) { 
     352                $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 
     353                $count++; 
     354            } 
     355        } else { 
     356            return false; 
     357        } 
    351358        return $count-1; 
    352359    } 
Note: See TracChangeset for help on using the changeset viewer.