Changeset 4409

Show
Ignore:
Timestamp:
04/06/09 19:16:04 (4 years ago)
Author:
jow
Message:

contrib/lar: fix buffer overflow check, define os dir seperator

Location:
luci/trunk/contrib/lar
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • luci/trunk/contrib/lar/lar.c

    r4408 r4409  
    184184    for( len = 0; package[len] != '\0'; len++ ) 
    185185    { 
    186         if( len >= sizeof(buffer) ) 
     186        if( len >= (sizeof(buffer) - 5) ) 
    187187            LAR_DIE("Package name exceeds maximum allowed length"); 
    188188 
     
    198198            } 
    199199 
    200             buffer[i] = ( package[i] == '.' ) ? '/' : package[i]; 
     200            buffer[i] = ( package[i] == '.' ) ? LAR_DIRSEP : package[i]; 
    201201        } 
    202202 
     
    220220    for( len = 0; package[len] != '\0'; len++ ) 
    221221    { 
    222         if( len >= sizeof(buffer) ) 
     222        if( len >= (sizeof(buffer) - 5) ) 
    223223            LAR_DIE("Package name exceeds maximum allowed length"); 
    224224 
  • luci/trunk/contrib/lar/lar.h

    r4407 r4409  
     1#ifndef __LAR_H 
     2#define __LAR_H 
     3 
    14#include <stdio.h> 
    25#include <stdlib.h> 
     
    2528#define LAR_FNAME_BUFFER 1024 
    2629#define LAR_FNAME(s) char s[LAR_FNAME_BUFFER] 
     30 
     31#ifdef __WIN32__ 
     32#define LAR_DIRSEP  '\\' 
     33#else 
     34#define LAR_DIRSEP  '/' 
     35#endif 
    2736 
    2837 
     
    7786 
    7887lar_member * lar_find_member( lar_archive *ar, const char *package ); 
     88 
     89#endif 
     90